大資料平臺hive原生搭建教程
環境準備
centos 7.1系統
需要三臺雲主機:
master(8) 作為 client 客戶端 slave1(9) 作為 hive server 伺服器端 slave2(10) 安裝 mysql server
安裝包使用的是官網下載的
將hive上傳到master ,mysql上傳到lib
搭建開始
slave2節點執行:
0x1.安裝 EPEL 源:
yum -y install epel-release
0x2.安裝 MySQL server 包,下載源安裝包:
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
注意如果報錯沒找到命令就先安裝wget命令
0x3安裝源:
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
檢視是否安裝成功:cd /etc/yum.repos.d
0x4啟動mysql
過載所有修改過的配置檔案:systemctl daemon-reload
開啟服務:systemctl start mysqld
開機自啟:systemctl enable mysqld
獲取初密碼:grep password /var/log/mysqld.log
登陸 MySQL:mysql -uroot -p
0x5更改資料庫安全策略
設定密碼強度為低階:set global validate_password_policy= 0;
設定密碼長度:set global validate_password_length=4;
修改本地密碼:alter user 'root'@'localhost' identified by '123456';
退出:exit
ps:密碼強度分級如下: 0 為 low 級別,只檢查長度; 1 為 medium 級別(預設),符合長度為 8,且必須含有數字,大小寫,特殊 字元; 2 為 strong 級別,密碼難度更大一些,需要包括字典檔案。 密碼長度最低長為 4,當設定長度為 1、2、3 時,其長度依然為 4。
0x6 設定遠端登入
以新密碼登陸 MySQL:mysql -uroot -p123456
建立使用者:create user 'root'@'%' identified by '123456';
允許遠端連線:grant all privileges on *.* to 'root'@'%' with grant option;
重新整理許可權:flush privileges;
0x7Slave1 上安裝 hive
master 中操作如下:
mkdir -p /usr/hive
tar -zxvf /opt/soft/apache-hive-2.1.1-bin.tar.gz -C /usr/hive/
然後再slave1節點也建立hive資料夾
scp -r /usr/hive/apache-hive-2.1.1-bin [email protected]:/usr/hive/
0x8修改環境變數
修改/etc/profile 檔案設定 hive 環境變數。(master 和 slave1 都執 )。
vi /etc/profile
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
0x9修改配置檔案
將上傳到lib的mysql-connector-java-5.1.5-bin.jar分發到slave1
scp /lib/mysql-connector-java-5.1.5-bin.jar [email protected]:/usr/hive/apache-hive-2.1.1-bin/lib
然後修改slave1 的配置檔案--hive-env.sh(在/usr/hive/apache-hive-2.1.1-bin/conf檔案)
生成配置檔案
cp hive-env.sh.template hive-env.sh
在配置檔案新增:HADOOP_HOME=/usr/hadoop/hadoop-2.7.3(根據自己設定來)
建立hive-site.xml檔案
[[email protected] conf]# vi hive-site.xml
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://slave2:3306/hive?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.schema.verification</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
在master節點配置客戶端
由於客戶端需要和 Hadoop 通訊,所以需要更改 Hadoop 中 jline 的版本。即 保留一個高版本的 jline jar 包,從 hive 的 lib 包中拷貝到 Hadoop 中 lib 位置為/usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib。
cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/
同樣修改 hive-env.sh
[[email protected] conf]# vi hive-site.xml
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://slave1:9083</value>
</property>
</configuration>
0x10 啟動hive
在slave1節點輸入bin/hive(在/usr/hive/apache-hive-2.1.1-bin輸入)
成功執行就一直是這個介面
同樣在master輸入 bin/hive
成功執行會顯示
測試 hive 是否啟動成功: hive>show databases;
輸入jps顯示這個