【Hive】Linux(Centos6.5)環境下Hive的安裝和配置MySQL

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

一些問題

  1. 啓動時報錯: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/
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章