本地搭建hadoop叢集-hive多節點訪問(hive2.3.3)
一、思路
1.安裝hadoop叢集。我這裡使用的是自己編譯的2.7.6
2.元資料使用mysql作為技術支撐
3.配置hive引數分發至各個節點
4.hive服務端啟動
5.各個節點hive客戶端訪問
二、mysql的安裝
rpm -q mysql-server //檢查是否安裝mysql
yum install -y mysql-server //yum安裝
service mysqld start //啟動mysql
chkconfig mysqld on //開機啟動mysql
# mysql -uroot //進入mysql
mysql>create database if not exists hive_metadata;
mysql>grant all privileges on hive_metadata.* to 'root'@'master' identified by '123456';
mysql>grant all privileges on hive_metadata.* to 'root'@'slave1' identified by '123456';
mysql>grant all privileges on hive_metadata.* to 'root'@'slave2' identified by '123456';
mysql>grant all privileges on hive_metadata.* to 'root'@'slave3' identified by '123456';
mysql>flush privileges; //刷盤生效
mysql>quit;//退出
# yum install -y mysql-connector-java //安裝mysql-connector-java
# cp /usr/share/java/mysql-connector-java-5.1.17.jar /opt/module/apache-hive-2.3.3-bin/lib //將mysql connector拷貝到hive的lib包中
三、配置hive
# cd /opt/module/apache-hive-2.3.3-bin/conf
# cp -a hive-default.xml.template hive-site.xml
# vim hive-site.xml
搜尋以下引數修改
埠預設3306
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive_metadata?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>123456</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
cp -a hive-env.sh.template hive-env.sh
vim hive-env.sh
/etc/profile 這個檔案 記得配置一下 hive_home 環境變數
啟動hadoop叢集
hadoop fs -mkdir /tmp
hadoop fs -mkdir /user/hive/warehouse
hadoop fs -chmod -R 777 /tmp
hadoop fs -chmod -R 777 /user
三、分發配置
像hadoop一樣分發配置
所有機器 都在同一目錄下
scp hive 這個目錄 到所有 奴隸機 的目錄
分發完 hive檔案
分發配置檔案
各個機器 source 使配置生效
四、初始化元資料
在其中一臺機器上執行(我選擇 當時 安裝mysql 以及 hive 的機器。並非分發的奴隸機)
schematool -initSchema -dbType mysql
等待初始化完成
hive --service metastore & //後臺執行
五、執行hive
在其他任意節點上 輸入hive
hive>show databases;
建立 create database test;
在 另一個機器上 輸入hive
檢視剛剛建的資料庫是否存在