此文是基於上一篇文章:Hive環境搭建及測試
因為Hive默認的數據庫是derby,不支持同時開啟兩個./hive的命令終端;
而將Hive的默認數據庫修改成mysql后,可以解決該問題。
僅在安裝Hive的CloudDeskTop上配置
一、root用戶下:上傳mysql安裝包(mysql-5.5.32.tar.gz)到/install目錄下,並解壓安裝;
二、hadoop用戶下:上傳mysql驅動包(mysql-connector-java-3.0.17-ga-bin.jar )到/software/hive-1.2.2/lib
修改Hive的配置文件:
vi /software/hive-1.2.2/conf/hive-site.xml
更改數據庫連接方式:
394 <property> 395 <name>javax.jdo.option.ConnectionURL</name> 396 <!--<value>jdbc:derby:;databaseName=metastore_db;create=true</value>--> 397 <value>jdbc:mysql://192.168.154.134:3306/hive?createDatabaseIfNotExist=true&characterEncoding=utf8</value> 398 <description>JDBC connect string for a JDBC metastore</description> 399 </property>
更改驅動:
789 <property> 790 <name>javax.jdo.option.ConnectionDriverName</name> 791 <!-- <value>org.apache.derby.jdbc.EmbeddedDriver</value> --> 792 <value>com.mysql.jdbc.Driver</value> 793 <description>Driver class name for a JDBC metastore</description> 794 </property>
更改登陸名:
815 <property> 816 <name>javax.jdo.option.ConnectionUserName</name> 817 <!-- <value>APP</value> --> 818 <value>root</value> 819 <description>Username to use against metastore database</description> 820 </property>
更改登錄密碼:
379 <property> 380 <name>javax.jdo.option.ConnectionPassword</name> 381 <!-- <value>mine</value> --> 382 <value>123456</value> 383 <description>password to use against metastore database</description> 384 </property>
更改日志格式是二進制格式:
vi /etc/my.cnf
52 #binlog_format=mixed
53 binlog_format=row
三、測試安裝是否成功:
root用戶下:
cd /software/mysql-5.5.32/sbin
./mysqld start

lsof -i:3306 //查看是否啟動成功

cd /software/mysql-5.5.32/bin
./mysql -uroot -p123456 -e "drop database if exists hive;create database hive character set latin1" //必須為latin1;因為hive不支持utf-8 ./mysql -uroot -p123456 -e "show databases;"//顯示是否成功創建數據庫

hadoop用戶下:
【1、在slave節點啟動zookeeper集群(小弟中選個leader和follower)】
cd /software/zookeeper-3.4.10/bin/ && ./zkServer.sh start && cd - && jps
cd /software/zookeeper-3.4.10/bin/ && ./zkServer.sh status && cd -
【2、master01啟動HDFS集群】cd /software/ && start-dfs.sh && jps
【3、master01啟動YARN集群】cd /software/ && start-yarn.sh && jps
【YARN集群啟動時,不會把另外一個備用主節點的YARN集群拉起來啟動,所以在master02執行語句:】
cd /software/ && yarn-daemon.sh start resourcemanager && jps
【4、查看兩個master誰是主節點:】
[hadoop@master01 software]$ hdfs haadmin -getServiceState nn1
active (主節點)
[hadoop@master01 software]$ hdfs haadmin -getServiceState nn2
standby (備用主節點)
【5、查看兩個resourcemanager誰是主:】
[hadoop@master01 hadoop]$ yarn rmadmin -getServiceState rm1
active(主)
[hadoop@master01 hadoop]$ yarn rmadmin -getServiceState rm2
standby(備用)
【此時進行測試,的確可以同時支持在兩個ssh一起開啟./hive的命令終端了】
數據仍然是存放在hdfs集群的hive配置的默認路徑“/user/hive/warehouse”中的;
