Hive的安裝和配置
Hadoop的安裝和配置可見:Hadoop集羣搭建-完全分佈式
Mysql安裝
# 先卸載系統自帶
rpm -qa | grep mysql | xargs -e --nodeps
# (如果是centos7需要卸載mariadb相關組件)
rpm -qa | grep mariadb | xargs -e --nodeps
# 分別安裝mysql服務和客戶端
rpm -ivh Mysql-server.rpm
rpm -ivh Mysql-client.rpm
# 將mysql連接java的jar包放到lib目錄下
cp mysql-connector-java.jar hive/lib
# 啓動服務
service mysql start
# 查看狀態
service mysql status
# 獲取root默認密碼
cat /root/.mysql_secret
# 進入客戶端
mysql -uroot -p
Mysql配置
-- 修改密碼
set password=password('123456');
-- 修改使任意主機可訪問
use mysql;
select user,host,password from user;
update user set host='%' where host='localhost';
delete from user where host='127.0.0.1';
delete from user where host='(主機名)';
delete from user where host='::1';
-- 修改完成後在mysql中刷新
flush privileges;
-- 或者在終端重啓mysql服務
service mysql restart;
hive-site.xml配置
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node1:3306/hivedb?createDatabaseIfNotExist=true</value>
<description>
JDBC connect string for a JDBC metastore.
To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
<description>配置自動顯示錶頭</description>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
<description>配置顯示當前數據庫</description>
</property>
</configuration>
配置Hive日誌存放位置
# 重命名以下文件
mv hive-log4j.properties.template hive-log4j.properties
# 編輯
vim hive-log4j.properties
# 修改如下的參數
hive.log.dir=/opt/module/hive/logs
配置本次啓動時的配置(僅對本次啓動的hive有效)
配置優先級: 參數聲明(set) > 命令行參數(-hiveconf) > 配置文件(hive-site.xml)
# 啓動時添加參數配置: -hiveconf param=value
bin/hive -hiveconf mapreduce.reduce.tasks=10
# 或在啓動後使用SET關鍵字配置
set mapreduce.reduce.tasks=10;
# 查看參數設置
set mapreduce.reduce.tasks;
啓動
# 先啓動hadoop
start-dfs.sh
start-yarn.sh
# 進入Hive客戶端
bin/hive
# 不進入Hive客戶端,直接執行sql語句
bin/hive -e "show databases;"
# 不進入Hive客戶端,執行指定腳本中的sql語句
bin/hive -f /opt/datas/hive.sql
一些問題
-
啓動時報錯:Found class jline.Terminal, but interface was expected
解決方案:用hive/lib下的jline替換掉hadoop的jline
rm -f /opt/module/hadoop-2.6.0/share/hadoop/yarn/lib/jline-0.9.94.jar cp /opt/module/hive/lib/jline-2.12.jar /opt/module/hadoop-2.6.0/share/hadoop/yarn/lib/