基于三節點的Hadoop集群搭建Hive
安裝中前的準備
- 先要搭建好hadoop集群
- 安裝中用到的軟件:
- hive-1.1.0-cdh5.14.2.tar.gz ,下載地址
- MySQL5.7
安裝MySQL
hive的元數據Metastore默認存儲在自帶的derby數據庫中,這里使用MySQL存儲這些元數據信息,所以在安裝hive之前,先安裝MySQL。hive只用在一臺節點上安裝,所以MySQL也只需在一臺節點上安裝,這里我們選擇在node01上安裝。
- 下載并安裝MySQL官方的 Yum Repository
cd /kkb/soft
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
- MySQL數據庫設置
- 啟動MySQL
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service
status
此時MySQL已經開始正常運行。
- 修改密碼
root的默認密碼是放在/var/log/mysqld.log文件中,首先通過以下語句查看初始密碼:
sudo grep "password" /var/log/mysqld.log
password
然后通過找到的初始密碼,登錄進數據庫:
mysql -uroot -p
這個時候我們修改一下MySQL的root用戶的初始密碼,因為MySQL5.7對密碼的設定要求復雜度必須達到要求,否則密碼會設置失敗,通過以下兩行代碼,關閉這種密碼設定策略:
set global validate_password_policy=0;
set global validate_password_length=1;
這個時候就可以使用簡單密碼了,我們把root的密碼設置為1234。
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234'
然后配置root用戶的訪問權限:
grant all on *.* to root@'%' identified by '1234';
至此,MySQL的初步安裝就完成了。
安裝hive
- 上傳hive安裝包,進行解壓
mac命令行中執行:
scp hive-1.1.0-cdh5.14.2.tar.gz hadoop@node01:/kkb/soft
ssh hadoop@node01
cd /kkb/soft
tar -xzvf hive-1.1.0-cdh5.14.2.tar.gz -C /kkb/install
- 修改配置文件
- 修改環境變量
sudo vim /etc/profile
# 修改為:
export HIVE_HOME=/kkb/install/hive-1.1.0-cdh5.14.2
# 然后修改PATH,增加
$HIVE_HOME/bin
# 保存,使立刻生效
source /etc/profile
- 配置hive-env.sh
cd /kkb/install/hive-1.1.0-cdh5.14.2/conf/
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
# 修改內容為:
export HADOOP_HOME=/kkb/install/hadoop-2.6.0-cdh5.14.2/ #配置HADOOP_HOME路徑
export HIVE_CONF_DIR=/kkb/install/hive-1.1.0-cdh5.14.2/conf #配置HIVE_CONF_DIR路徑
- 配置hive-site.xml
修改hive-site.xml文件,內容改為:
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
# MySQL所在服務器地址要對,我們裝在node01上
<value>jdbc:mysql://node01:3306/hive?createDatabaseIfNotExist=true&characterEncoding=latin1&useSSL=false</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>
# 這個密碼為我們上邊改的root的密碼
<name>javax.jdo.option.ConnectionPassword</name>
<value>1234</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node01</value>
</property>
</configuration>
- 修改hive的日志配置文件路徑
執行以下命令,定義hive的日志文件存放路徑
mkdir -p /kkb/install/hive-1.1.0-cdh5.14.2/logs/
cd /kkb/install/hive-1.1.0-cdh5.14.2/conf/
mv hive-log4j.properties.template hive-log4j.properties
vim hive-log4j.properties
#更改以下內容,設置我們的日志文件存放的路徑
hive.log.dir=/kkb/install/hive-1.1.0-cdh5.14.2/logs/
- 將mysql的驅動包上傳到hive的lib目錄下
scp mysql-connector-java-5.1.38.jar hadoop@node01:/kkb/install/hive-1.1.0-cdh5.14.2/lib
hive的交互方式
注意:要先啟動Hadoop集群和MySQL
- Hive交互shell
cd /kkb/install/hive-1.1.0-cdh5.14.2
hive
- Hive JDBC服務
- 啟動hiveserver2服務
# 前臺啟動
hive --service hiveserver2
# 后臺啟動
nohup hive --service hiveserver2 &
- beeline連接hiveserver2
重新開啟一個會話窗口,然后使用beeline連接hive。
beeline
# 然后在beeline界面執行:
!connect jdbc:hive2://node01:10000
beeline
命令行要求輸入用戶名和密碼,直接回車即可。至此,hive就安裝成功。