1. 程式人生 > >Hive1.2.2詳細安裝教程

Hive1.2.2詳細安裝教程

Hive是Hadoop組態中的資料倉庫,本質是將sql語句轉換為MapReduce任務,所以Hive只是一個解析引擎,它的資料儲存在hdfs上,元資料資訊依託mysql資料庫。在這裡有一個小問題,為什麼需要mysql關係資料庫,因為hdfs儲存的只是資料資訊,而建表的時候是需要列名來查詢的,因此要用mysql來建立表資訊,當然也可以用其他的關係型資料庫。在這裡依託mysql資料庫搭建Hive元件。

1. 安裝MySQL伺服器端和MySQL客戶端;

•安裝:

– yum install mysql

– yum install mysql-server

•啟動:

– /etc/init.d/mysqld start

•設定使用者名稱和密碼:

– mysql admin -u root password  ‘111111’

•測試登入是否成功:

– mysql -uroot -p111111

登入MySQL:(1)直接輸入密碼mysql -uroot -p111111 (2)使用者和密碼mysql -uroot –p,密碼111111

退出MySQL:exit;或者quit;

2. 安裝Hive

a.#Master

下載apache-hive-1.2.2-bin.tgz,並解壓

wget http://mirror.bit.edu.cn/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz

tar zxvf apache-hive-1.2.2-bin.tar.gz

 b.修改Hive配置檔案

#Master

cd apache-hive-1.2.2-bin/conf

建立hive-site.xml配置檔案

vim hive-site.xml

 

<configuration>

    <property>

        <name>javax.jdo.option.ConnectionURL</name>

       <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

    </property>

    <property>

       <name>javax.jdo.option.ConnectionDriverName</name>

       <value>com.mysql.jdbc.Driver</value>

   </property>

    <property>

       <name>javax.jdo.option.ConnectionUserName</name>

        <value>root</value>

    </property>

    <property>

       <name>javax.jdo.option.ConnectionPassword</name>

        <value>111111</value>

    </property>

</configuration>

 c.修改bashrc,配置環境變數

#Master、Slave1、Slave2

vim ~/.bashrc

export HIVE_HOME=/usr/local/src/apache-hive-1.2.2-bin

export PATH=$PATH:$HIVE_HOME/bin

#重新整理環境變數

source ~/.bashrc

 d. 安裝MySQL連線工具

#Master

1)下載安裝包

wge thttps://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.44.tar.gz

tar zxvf mysql-connector-java-5.1.44.tar.gz

2)複製連線庫檔案

cp mysql-connector-java-5.1.44-bin.jar /usr/local/src/apache-hive-1.2.2-bin/lib

 e.更新jline.jar

在早期Hadoop版本中 jline.jar的版本是0.9+ 使用這個版本會報錯,所以要替換成新版本的Jar包;

jline.jar包下載地址: http://maven.outofmemory.cn/jline/jline/2.12.1/

#Master

進入路徑cd /usr/local/src/hadoop-2.6.1/share/hadoop/yarn/lib

刪除jlin-0.9.94.jar  rm -rf jline-0.9.94.jar

替換成新的版本cp jline-2.12.1.jar/usr/local/src/hadoop-2.6.1/share/hadoop/yarn/lib

 f.拷貝安裝包

#Master

scp-r /usr/local/src/[email protected]:/usr/local/src/apache-hive-1.2.2-bin

scp-r /usr/local/src/apache-hive-1.2.2-bin [email protected]:/usr/local/src/apache-hive-1.2.2-bin

h.啟動Hive服務

#Master

hive

 i.退出Hive服務

#Master

exit;


3.建立hive資料庫並重新整理許可權

mysql>CREATE USER ‘hive’ IDENTIFIED BY ‘hive’;

mysql>GRANT ALL PRIVILEGES ON *.* TO ‘hive’@’master’ WITH GRANT OPTION;

mysql>GRANT ALL PRIVILEGES ON *.* TO ‘hive’@’master’ IDENTIFIED BY ‘111111’;

mysql>flush privileges;

mysql>create database hive;

flush privileges; --為其他客戶端開啟連線許可權


4.解決mysql“Access denied for user'root'@'localhost'”

 #/etc/init.d/mysql stop

#mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

#mysql -u root mysql

mysql>UPDATE user SET Password=PASSWORD('111111') where USER='root';

mysql>FLUSH PRIVILEGES;

mysql>quit;

 

#/etc/init.d/mysql restart

#mysql -uroot -p

Enterpassword: <輸入新設的密碼newpassword>

5.向Hive表中載入資料

load data inpath 'path' overwrite into table name;  載入hdfs路徑下的檔案,資料會從該目錄下移動到目標位置。

load data local inpath 'path' overwrite into table name;  載入本地檔案系統路徑下的檔案,資料會被拷貝到目標位置。

6.hive複製整段語句是出現 Display all 475possibilities? (y or n)錯誤的處理方法

在用hive時,複製一整片程式碼執行,發現好多提示: Display all 475possibilities? (y or n),導致複製失敗,原因:是複製的程式碼中包含了Tab縮排,只要將原來複制的程式碼中的Tab空格全部去掉即可。

7.hive匯入資料時最後幾列始終為NULL的原因:

主要是分隔符的問題,建立表指定的分隔符為"\t",可資料是以空格分割的。比如你的檔案內容裡面是以空格分割的,by的後面就寫‘’(裡面有一個空格);如果檔案內容是以逗號分割的,by後面就寫‘,’。