Hadoop學習筆記-009-CentOS_6.5_64_HA高可用-Hadoop2.6+Zookeeper3.4.5安裝Hive1.1.0

參考:html

http://www.cnblogs.com/fefjay/p/6044471.htmljava

http://blog.csdn.net/totxian/article/details/45248399mysql

 

建立hive用戶sql

第一步,建立hive用戶並賦權限數據庫

用mysql的root用戶登陸進入命令行apache

#mysql -uroot -p123456

 

 

 

 

建立hive用戶session

mysql # create user 'hive' identified by 'hive';

 

 

給hive用戶賦權限app

 

mysql # grant all privileges on hivedb.* to 'hive'@'%' identified by 'hive';

mysql # grant all privileges on hivedb.* to 'hive'@'localhost' identified by 'hive';

 

 

 

 

刷新mysql系統權限ide

# flush privileges;

 

 

第二步,建立hive數據庫oop

用root用戶登陸

# mysql -uroot -p123456

 

 

建立hive的數據庫

mysql # create database hivedb;

 

查看hive的用戶的數據庫

mysql# show databases;

 

 

用戶hive用戶登陸

#mysql –uhive -phive

 

Hive用戶查看數據庫

mysql# show database

 

使用hivedb數據庫

mysql#use hivedb

 

 

建立表

mysql#create table test(name varchar(10));

 

 

查看test表

mysql#show tables;

 

 

 

安裝hive

 

第一步,解壓已下載好的hive安裝包

#tar –zxvf hive-1.1.0-cdh5.4.5.tar.gz

 

 

 

 

解壓後刪除hive安裝包,節省磁盤空間

#rm –rf hive-1.1.0-cdh5.4.5.tar.gz

 

 

第二步,複製mysql的驅動包到hive安裝目錄的lib目錄下

# scp mysql-connector-java-5.1.40-bin.jar /home/hadoop/app/hive-1.1.0-cdh5.4.5/lib

 

 

第三步,root用戶配置環境變量

#vi /etc/profile

 

添加如下配置

HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.4.5

export PATH=$PATH:$HADOOP_HOME/bin:$HIVE_HOME/bin

 

 

使環境變量及時生效

#source /etc/profile

 

 

第四步,配置hive-env.sh

hadoop用戶登陸

#su hadoop

 

進入$HIVE_HOME/conf目錄,並將文件hive-env.sh.template重命名爲hive-env.sh

#mv hive-env.sh.template hive-env.sh

 

打開hive-env.sh文件並修改配置

#vi hive-env.sh

 

 

第五步,配置hive-site.xml文件

在$HIVE_HOME/conf目錄下建立hive-site.xml文件

#cd /home/hadoop/app/hive-1.1.0-cdh5.4.5/conf

#echo "" > hive-site.xml

 

 

添加如下配置:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>


<configuration>
     <property>     
           <name>hive.exec.scratchdir</name>       
          <value>hdfs://cluster1/hive/scratchdir</value>
     </property>
     <property>     
           <name>hive.metastore.warehouse.dir</name>       
           <value>hdfs://cluster1/hive/warehouse</value>
     </property>
     <property>     
           <name>hive.querylog.location</name>       
           <value>/home/hadoop/app/hive-1.1.0-cdh5.4.5/logs</value>            
     </property>
     <property>     
           <name>javax.jdo.option.ConnectionURL</name>       
           <value>jdbc:mysql://192.168.150.103:3306/hivedb?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>hive</value>            
     </property>
     <property>     
           <name>javax.jdo.option.ConnectionPassword</name>       
           <value>hive</value>            
     </property>
     <property>     
           <name>hive.downloaded.resources.dir</name>       
           <value>/home/hadoop/app/hive-1.1.0-cdh5.4.5/local/${hive.session.id}_resources</value>            
     </property>
     <property>     
           <name>hive.server2.logging.operation.log.location</name>       
           <value>/home/hadoop/app/hive-1.1.0-cdh5.4.5/logs/operation_logs</value>            
     </property>
</configuration>

其中,hive-site.xml文件中的hive.exec.scratchdir和hive.metastore.warehouse.dir的hdfs訪問地址須要和hadoop的配置文件core-site.xml中fs.defaultFS的值一致,個人配置是hdfs://cluster1,以下

 

hive-site.xml文件的配置以下

 

 

在$HIVE_HOME目錄下建立local和logs目錄

#mkdir local

#mkdir logs

 

 

 

 

第六步,配置log4j

進入到$HIVE_HOME/conf目錄下

重命名hive-exec-log4j.properties.template爲hive-exec-log4j.properties

#mv hive-exec-log4j.properties.template hive-exec-log4j.properties

 

重命名hive-log4j.properties.template 爲hive-log4j.properties

#mv hive-log4j.properties.template hive-log4j.properties

 

 

修改文件hive-exec-log4j.properties和hive-log4j.properties(修改如下兩行)

hive.log.dir=/home/hadoop/app/hive-1.1.0-cdh5.4.5/logs

log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter

 

 

hive-exec-log4j.properties

 

 

 

hive-log4j.properties

 

 

 

第七步,啓動hadoop

 

啓動zookeeper,進入cdh3節點的~/tools目錄

#cd ~/tools/

#./runRemoteCmd.sh "~/app/zookeeper-3.4.5-cdh5.4.5/bin/zkServer.sh start" zookeeper

 

啓動HDFS,進入cdh1節點的~/app/hadoop-2.6.0-cdh5.4.5/sbin目錄,執行./start-dfs.sh

# cd ~/app/hadoop-2.6.0-cdh5.4.5/sbin

#./start-dfs.sh

 

 

啓動YARN,進入cdh1節點的~/app/hadoop-2.6.0-cdh5.4.5/sbin目錄,執行./start-yarn.sh 

# cd ~/app/hadoop-2.6.0-cdh5.4.5/sbin

#./start-yarn.sh

 

啓動resourcemanager,進入cdh2節點的~/app/hadoop-2.6.0-cdh5.4.5/sbin目錄

# cd ~/app/hadoop-2.6.0-cdh5.4.5/sbin

# ./yarn-daemon.sh start resourcemanager

 

 

查看各節點進程,進入cdh1的~/tools目錄下

#cd ~/tools/

#./runRemoteCmd.sh "jps" all

 

****************************關閉hadoop集羣************************

關閉cdh1的resourcemanager,進入cdh1節點的~/app/hadoop-2.6.0-cdh5.4.5/sbin目錄,執行./yarn-daemon.sh stop resourcemanager 

#cd ~/app/hadoop-2.6.0-cdh5.4.5/sbin

#./yarn-daemon.sh stop resourcemanager

 

 

關閉yarn(也會關閉cdh2的resourcemanager),進入cdh2節點的~/app/hadoop-2.6.0-cdh5.4.5/sbin目錄,執行./stop-yarn.sh 

#cd ~/app/hadoop-2.6.0-cdh5.4.5/sbin

# ./stop-yarn.sh

 

 

關閉HDFS,進入cdh1節點的~/app/hadoop-2.6.0-cdh5.4.5/sbin目錄,執行./stop-dfs.sh

# cd ~/app/hadoop-2.6.0-cdh5.4.5/sbin

#./stop-dfs.sh

 

 

關閉zookeeper,進入cdh3節點的~/tools目錄

#cd ~/tools/

#./runRemoteCmd.sh "~/app/zookeeper-3.4.5-cdh5.4.5/bin/zkServer.sh stop" zookeeper

 

 

查看進程,進入cdh1的~/tools目錄下

#cd ~/tools/

#./runRemoteCmd.sh "jps" all

 

 

 

第八步,啓動hive

#hive

 

 

 

 

 

至此,Hive安裝完成。

 

 

 

*********************************FAQ*******************************

hive-site.xml文件的hive.exec.scratchdir和hive.metastore.warehouse.dir,第一次我配置成了以下:

hive.exec.scratchdir     hdfs://cdh1:9000/ hive/scratchdir

hive.metastore.warehouse.dir      hdfs://cdh1:9000/ hive/warehouse

 

 

發現啓動有問題,因而就改爲了hadoop中的core-site.xml配置文件中的fs.defaultFS的值,可是重啓後仍會出現如下問題:

 

像這種狀況重啓hive服務是無效的,仍會報錯,須要用如下方式更正:

 

登陸mysql  

#mysql –uhive –phive

 

如下是個人mysql中的數據庫,其中hivedb是個人hive鏈接的數據庫

 

查看hivedb庫的全部表:

 

 

 

其中的DBS和SDS是須要修改的表,這兩張表中保存着原來的hdfs的路徑(也就是hdfs://cdh1:9000),修改爲HA對應的別名便可(也就是core-site.xml文件中的hdfs://cluster1),修改以下

首先查看修改前的hivedb.DBS表的數據:

#select * from hivedb.DBS;

 

 

而後修改hivedb.DBS表的hdfs存儲路徑,並查看修改後的數據,以下:

#update hivedb.DBS set DB_LOCATION_URI='hdfs://cluster1/hive/warehouse' WHERE DB_ID='1';

#update hivedb.DBS set DB_LOCATION_URI='hdfs://cluster1/hive/warehouse/hive.db' WHERE DB_ID='6';

 

其中的條件DB_ID根據實際數據更新。

 

而後查看修改前的hivedb.SDS表的數據:

# select * from hivedb.SBS;

 

 

而後修改hivedb.SDS表的hdfs存儲路徑,並查看修改後的數據,以下:

# update hivedb.SDS set LOCATION='hdfs://cluster1/hive/warehouse/hive.db/test2' where SD_ID='6';

# update hivedb.SDS set LOCATION='hdfs://cluster1/hive/warehouse/hive.db/test3' where SD_ID='11';

 

其中的條件SD_ID根據實際數據更新。

 

從新進入hive,建立表並添加數據

 

 

 

該問題解決。

 

完成!

相關文章
相關標籤/搜索