1. 程式人生 > >Hive2.2.0安裝

Hive2.2.0安裝

來源:http://www.cnblogs.com/hmy-blog/p/6506417.html

一、Hive 執行模式

與 Hadoop 類似,Hive 也有 3 種執行模式:

1. 內嵌模式

將元資料儲存在本地內嵌的 Derby 資料庫中,這是使用 Hive 最簡單的方式。但是這種方式缺點也比較明顯,因為一個內嵌的 Derby 資料庫每次只能訪問一個數據檔案,這也就意味著它不支援多會話連線。

2. 本地模式

這種模式是將元資料儲存在本地獨立的資料庫中(一般是 MySQL),這用就可以支援多會話和多使用者連線了。

3. 遠端模式

此模式應用於 Hive 客戶端較多的情況。把 MySQL 資料庫獨立出來,將元資料儲存在遠端獨立的 MySQL 服務中,避免了在每個客戶端都安裝 MySQL 服務從而造成冗餘浪費的情況。

二、下載安裝 Hive

http://hive.apache.org/downloads.html

tar -xzvf apache-hive-2.2.0-bin.tar.gz    ##解壓

三、配置系統環境變數
修改 /etc/profile 檔案  vim ~/.bashrc 來修改(root使用者操作):
  1. 設定 Hive環境變數  
  2. # Hive environment  
  3. export HIVE_HOME=/usr/local/apache-hive-2.2.0-bin 
  4. export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH  
  1. 使環境變數生效:  
  2. source  ~/.bashrc 

四、內嵌模式

(1)修改 Hive 配置檔案

$HIVE_HOME/conf 對應的是 Hive 的配置檔案路徑,類似於之前學習的Hbase, 該路徑下的 hive-site.xml 是 Hive 工程的配置檔案。預設情況下,該檔案並不存在,我們需要拷貝它的模版來實現:

  1. cp hive-default.xml.template hive-site.xml  


hive-site.xml 的主要配置有:

  • hive.metastore.warehouse.dir
    該引數指定了 Hive 的資料儲存目錄,預設位置在 HDFS 上面的 /user/hive/warehouse 路徑下。

  • hive.exec.scratchdir
    該引數指定了 Hive 的資料臨時檔案目錄,預設位置為 HDFS 上面的 /tmp/hive 路徑下。

同時我們還要修改 Hive 目錄下 /conf/hive-env.sh 檔案(請根據自己的實際路徑修改),該檔案預設也不存在,同樣是拷貝它的模版來修改:
cp hive-env.sh.template  hive-env.sh
  1. # Set HADOOP_HOME to point to a specific hadoop install directory  
  2. HADOOP_HOME= /usr/local/hadoop-2.6.0  
  3. # Hive Configuration Directory can be controlled by:  
  4. export HIVE_CONF_DIR=/home/hadoop/cloud/apache-hive-2.1.1-bin/conf  
  5. # Folder containing extra ibraries required for hive compilation/execution can be controlled by:  
  6. export HIVE_AUX_JARS_PATH=/home/hadoop/cloud/apache-hive-2.1.1-bin/lib  

(2)建立必要目錄


前面我們看到 hive-site.xml 檔案中有兩個重要的路徑,切換到 hadoop 使用者下檢視 HDFS 是否有這些路徑:
  1. hadoop fs -ls /  
沒有發現上面提到的路徑,因此我們需要自己新建這些目錄,並且給它們賦予使用者寫(W)許可權。
  1. $HADOOP_HOME/bin/hdfs dfs -mkdir -p /user/hive/warehouse  
  2. $HADOOP_HOME/bin/hdfs dfs -mkdir -p /tmp/hive/  
  3. hdfs dfs -chmod 777 /user/hive/warehouse  
  4. hdfs dfs -chmod 777 /tmp/hive  

檢查是否新建成功 hadoop fs -ls / 以及 hadoop fs -ls /user/hive/ :

(3)修改 io.tmpdir 路徑【不需要】

同時,要修改 hive-site.xml 中所有包含 ${system:java.io.tmpdir} 欄位的 value 即路徑(vim下 / 表示搜尋,後面跟你的關鍵詞,比如搜尋 hello,則為 /hello , 再回車即可),你可以自己新建一個目錄來替換它,例如 /home/Hadoop/cloud/apache-hive-2.1.1-bin/iotmp

  1. mkdir /home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp  
  2. chmod 777 /home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp  
  3. 把hive-site.xml 中所有包含 ${system:Java.io.tmpdir}替換成/home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp  
全域性替換命令 先按Esc鍵  再同時按shift+:把以下替換命令貼上按回車即可全域性替換
  1. %s#${system:java.io.tmpdir}#/home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp#g  

(4)執行 Hive
  1. ./bin/hive  
報錯

解決辦法:$HIVE_HOME/bin/schematool -dbType derby  -initSchema 應該會報錯

報錯

解決方法:刪除/home/hadoop/cloud/apache-hive-2.1.1-bin目錄下 rm -rf metastore_db/ 

再次初始化:$HIVE_HOME/bin/schematool -dbType derby  -initSchema 不再報錯


重新執行./bin/hive

報錯

/tem/hive 沒寫的許可權

Hive本身自帶一個資料庫,但是有弊端,hive本身資料庫,每次只允許一個使用者登入

mysql安裝:http://blog.csdn.net/u014695188/article/details/51532410

設定mysql關聯hive

修改配置檔案

### 建立hive-site.xml檔案 
在hive/conf/目錄下建立hive-site.xml檔案

  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>  
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  3. <configuration>  
  4.    <property>  
  5.         <name>javax.jdo.option.ConnectionURL</name>  
  6.         <value>jdbc:mysql://192.168.169.134:3306/hive?createDatabaseIfNotExist=true</value>  
  7.     </property>  
  8.     <property>  
  9.         <name>javax.jdo.option.ConnectionDriverName</name>  
  10.         <value>com.mysql.jdbc.Driver</value>  
  11.     </property>  
  12.     <property>  
  13.         <name>javax.jdo.option.ConnectionUserName</name>  
  14.         <value>root</value>  
  15.     </property>  
  16.     <property>  
  17.         <name>javax.jdo.option.ConnectionPassword</name>  
  18.         <value>123456</value>  
  19.     </property>  
  20. <!-- 下面這個配置我不要也能執行沒有報錯-->
  21.     <property>    
  22.    <name>hive.metastore.schema.verification</name>    
  23.    <value>false</value>    
  24.     <description>    
  25.     Enforce metastore schema version consistency.    
  26.     True: Verify that version information stored in metastore matches with one from Hive jars.  Also disable automatic    
  27.           schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures    
  28.           proper metastore schema migration. (Default)    
  29.     False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.    
  30.     </description>    
  31.  </property>   
  32. </configuration>  

報錯:Caused by: MetaException(message:Version information not found in metastore. )

解決:hive-site.xml加入

  1. <property>    
  2.    <name>hive.metastore.schema.verification</name>    
  3.    <value>false</value>    
  4.     <description>    
  5.     Enforce metastore schema version consistency.    
  6.     True: Verify that version information stored in metastore matches with one from Hive jars.  Also disable automatic    
  7.           schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures    
  8.           proper metastore schema migration. (Default)    
  9.     False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.    
  10.     </description>    
  11.  </property>   

報錯:缺少mysql jar包

解決:將其(如mysql-connector-Java-5.1.15-bin.jar)拷貝到$HIVE_HOME/lib下即可。

報錯:

  1. Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized.   
  2.     Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed,   
  3.     don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)  

解決:

  1. #資料庫的初始化。  
  2.   bin/schematool -initSchema -dbType mysql  

啟動:

  1. bin/hive  


啟動後mysql 多了hive 資料庫

測試

建立資料庫

create database db_hive_test;

建立測試表

use db_hive_test;

create table student(id int,name string) row format delimited fields terminated by '\t';



載入資料到表中

新建student.txt 檔案寫入資料(id,name 按tab鍵分隔)

vi student.txt

  1. 1001    zhangsan  
  2. 1002    lisi  
  3. 1003    wangwu  
  4. 1004    zhaoli  

load data local inpath '/home/hadoop/student.txt' into table  db_hive_test.student

查詢表資訊

select * from student;

查看錶的詳細資訊

desc formatted student;

通過ui頁面檢視建立的資料位置

http://192.168.169.132:50070/explorer.html#/user/hive/warehouse/db_hive_test.db

通過Mysql檢視建立的表

檢視hive的函式 

show functions;

檢視函式詳細資訊 

desc function sum; 
desc function extended

相關推薦

Hive2.2.0安裝

來源:http://www.cnblogs.com/hmy-blog/p/6506417.html 一、Hive 執行模式 與 Hadoop 類似,Hive 也有 3 種執行模式: 1. 內嵌模式 將元資料儲存在本地內嵌的 Derby 資料庫中,這是使用 Hive

kali 2.0安裝 搜狗輸入法簡易教程

kali 搜狗輸入法安裝kali,配置好安裝源,選擇阿裏鏡像源。(網上教程很多自行搜索)通過瀏覽器進入搜狗官網下載(linux版本,位數根據安裝kali位數定)將下載好的搜狗輸入法版本從下載文件夾路徑剪切到home目錄下(kali界面可操作性)在home目錄下看文件是否存在,然後執行apt-get -f i

Spark 2.2.0 安裝與配置

mem p s template .sh org uri 文件 圖片 with 下載Spark 解壓並移動到/software目錄: tar -zxvf spark-2.2.0-bin-without-hadoop.tgz mv spark-2.2.0-bin-withou

Hive2.1.0安裝

1.安裝準備 Hadoop版本:2.7.2 MySQL版本:5.7.3 下載安裝包: apache-hive-2.1.0-bin.tar.gz 解壓重新命名: tar zxvf apache-hive-2.1.0-bin.tar.gz mv apache-hive-2.1.0-bin hive

Dart SDK 2.0安裝問題

官方標準安裝方法: $ brew tap dart-lang/dart $ brew install dart 但是執行第二步會出錯: ==> Installing dart from dart-lang/dart ==> Downloading https://storage.google

CentOS6.8下Nagios-4.2.0安裝和配置

因此 figure 問題 usermod linux文件 httpd的配置 pen kconfig etc 1實驗目標 掌握Nagios的安裝 2實驗環境 主機名:Nagios-Server 操作系統:CentOS release 6.8 (Final) IP地址:19

ubuntu16.04 + opencv3.2.0 安裝教程

0、安裝前準備: (1)安裝編譯工具 sudo apt-get install build-essential -y (2)安裝依賴包 sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-d

cdh5.7.0偽分散式叢集之spark-2.2.0安裝

基本環境及軟體: 軟體版本 軟體包 centos-6.4   JDK-1.8 jdk-8u191-linux-x64.tar.gz hadoo

dotnet hosting 2.2.0 安裝到 Server 2012 X64 DC伺服器,.Net Framework 老站崩潰問題

1,dotnet hosting 2.2.0  需要C++2015  2,C++2015 需要  KB2919355     https://www.microsoft.com/zh-cn/download/confirmati

dotnet hosting 2.2.0 安裝到 Server 2012 X64 DC服務器,.Net Framework 老站崩潰問題

x64 server 2.2.0 frame .aspx download kb2919355 hosting conf 1,dotnet hosting 2.2.0 需要C++2015 2,C++2015 需要 KB2919355 https://www.m

Android Studio 3.2.0安裝

1、下載地址: http://www.android-studio.org/ 預設是64位的,如果是要32位的,從“選擇其他平臺“中找到Windows (32-bit) 2、開啟安裝包一路點選“Next”進行安裝,安裝路徑預設是C盤目錄,建議不要更改。 3、開啟

tcl-debug-2.0 安裝除錯 NS2.34

1、./configure --prefix=/path prefix選項是配置安裝的路徑,如果不配置該選項,安裝後可執行檔案預設放在/usr/local/bin,庫檔案預設放在/usr/local/lib,配置檔案預設放在/usr/local/etc,其它的資原始檔放在/usr/local/s

SAP S/4 1610 IDES + HANA 2.0 安裝

前幾天安裝的都沒帶演示資料 ,這個版本帶DEMO資料,學習比較好我的機器配置:記憶體:128GCPU:E5-2618L V4硬碟:1T SSD安裝在VMware虛擬機器中,安裝完後,虛擬機器大小隻有一百多G,沒有想象中的大。64G記憶體沒試過,直接上的兩根64G條子,可以安裝,並且速度還不錯 http://1

最新版spark-2.2.0安裝教程

1.jdk的安裝;(java1.8) 2.hadoop安裝;(hadoop2.7.2) 3.scala安裝;(scala2.11.8) 4.spark安裝。(spark2.2.0) 0.環境:mac OS X 10.12 1.jdk的安裝:安裝java

Fakeapp2.2.0安裝圖文實錄-見坑填坑

先下載APP和core檔案; 連結:https://pan.baidu.com/s/1jJHShpk 密碼:wekn 具體安裝過程: 1、安裝必要環境; 硬體和作業系統,支援cuda的Nvidia顯示卡,8G及以上的記憶體,Windows10 x64,

spark-2.2.0安裝和部署

Spark下載 為了方便,我直接是進入到了/usr/local資料夾下面進行下載spark-2.2.0 wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgz Spark安裝之前的準備 檔案的解壓與

Kali 2.0安裝之後的簡單設定

 使用的是Kali-Linux-2.0.0-vm-amd64,下圖是安裝後的桌面 一、漢化 Applications--->Usual applications--->system tool --->preferences--->settings-

【Python+OpenCV】Windows+Python3.6.0(Anaconda3)+OpenCV3.2.0安裝配置

注:本次安裝因為我要配的這個筆記本是win7(32bit)的,所以安裝中軟體版本的選擇就是按32位走的,我之前在win10(64bit)也裝過,實際中這個教程的方法對於win7還是win10,32位又或是64位系統是通用的,軟體版本按需選擇就行了。 1.安裝Python

ruby 2.1.1 rails 4.2.0 安裝gemset 卻少 mysql ,command line tool for mac osx

Last login: Wed Aug 17 13:13:31 on ttys000 kevindeMacBook-Pro:~ kevin$ gem sources *** CURRENT SOURCES *** https://rubygems.org/ kevinde

hive2.2.1安裝

1下載hive 安裝包 2hive_home/conf cp hive-default.xml.templatehive-site.xml 把所有模板都改成去掉template的配置檔案 3修改hive-env.sh export HIVE_CONF_DIR=/app