1. 程式人生 > >本地搭建hadoop叢集-hive多節點訪問(hive2.3.3)

本地搭建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 

檢視剛剛建的資料庫是否存在