apache 大數據平台搭建(hive)


一.官網下載安裝包

https://hive.apache.org/
由於hive-3.1.2默認支持的時spark2.4.3的版本,我們后面需要安裝spark3.0.0
所以需要重新編譯,可留言獲取安裝包
編譯步驟:官網下載 Hive3.1.2 源碼,修改 pom 文件中引用的 Spark 版本為 3.0.0,如果
編譯通過,直接打包獲取 jar 包。如果報錯,就根據提示,修改相關方法,直到不報錯,打
包獲取 jar 包。

二.安裝

  1. 將編譯后的hive安裝包上傳服務器
#在安裝包所在路徑執行解壓命令:
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module
  1. 修改配置文件
cd /opt/module/hive-3.1.2/conf
vim hive-site.xml
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop101:3306/metastore?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>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>yourpassword</value>
    </property>

    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>

    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>

    <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    </property>

    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop101</value>
    </property>

    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
    
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>

    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>

<!--Spark依賴位置(注意:端口號8020必須和namenode的端口號一致)-->
<property>
    <name>spark.yarn.jars</name>
    <value>hdfs://hadoop101:8020/spark-jars/*</value>
</property>
  
<!--Hive執行引擎-->
<property>
    <name>hive.execution.engine</name>
    <value>spark</value>
</property>

<!--Hive和Spark連接超時時間-->
<property>
    <name>hive.spark.client.connect.timeout</name>
    <value>10000ms</value>
</property>

</configuration>

三.啟動hive

  1. 初始化元數據庫
    登錄mysql,創建元數據庫

create database metastore;

  1. 進入hive bin目錄,執行初始化
    schematool -initSchema -dbType mysql -verbose

  2. 啟動hadoop之后,執行hive命令,進入hive客戶端命令行
    image

  3. 元數據方式訪問hive和jdbc方式訪問hive
    在 hive-site.xml 文件中添加如下配置信息:

<!-- 指定存儲元數據要連接的地址 -->
 <property>
 <name>hive.metastore.uris</name>
 <value>thrift://hadoop101:9083</value>
 </property>
 <!-- 指定 hiveserver2 連接的 host -->
 <property>
 <name>hive.server2.thrift.bind.host</name>
 <value>hadoop101</value>
 </property>
 <!-- 指定 hiveserver2 連接的端口號 -->
 <property>
 <name>hive.server2.thrift.port</name>
 <value>10000</value>
 </property>
 

配置好后啟動metastore和hiveserver2服務:

hive --service metastore
hive --service hiveserver2

hive bin目錄下hive命令就是通過元數據方式訪問,beeline命令是通過jdbc方式訪問
image

  1. 配置hive腳本
#!/bin/bash

HIVE_LOG_DIR=$HIVE_HOME/logs

case $1 in
"start")
    echo ' ---------- start metastore ---------- '
        nohup /opt/module/hive-3.1.2/bin/hive --service metastore >> $HIVE_LOG_DIR/metastore.log 2>&1 &
        sleep 2
        echo ' ---------- start hiveserver2 ---------- '
        nohup /opt/module/hive-3.1.2/bin/hive --service hiveserver2 >> $HIVE_LOG_DIR/hiveserver2.log 2>&1 &
 ;;
"stop")
        echo ' ---------- stop hiveserver2 ---------- '
        kill -9 $(jps -m | grep 'HiveServer2' | awk 'NR==1{print $1}')
        echo ' ---------- stop metastore ---------- '
        kill -9 $(jps -m | grep 'HiveMetaStore' | awk 'NR==1{print $1}')
 ;;
*)
    echo Invalid Args!
    echo 'Usage: '$(basename $0)' start|stop'
 ;;
esac

啟停hive:
hive.sh start
hive.sh stop

四.配置hive on spark

# 1. 在 hive 中創建 spark 配置文件
vim /opt/module/hive/conf/spark-defaults.conf

#添加以下內容
spark.master yarn
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop101:8020/spark-history
spark.executor.memory 1g
spark.driver.memory 1g

# 2. 在 HDFS 創建如下路徑,用於存儲歷史日志
hadoop fs -mkdir /spark-history

# 3. 向 HDFS 上傳 Spark 純凈版 jar 包
tar -zxvf /opt/software/spark-3.0.0-bin-without-hadoop.tgz
hadoop fs -mkdir /spark-jars
hadoop fs -put spark-3.0.0-bin-without-hadoop/jars/* /spark-jars

# 4. 修改hive-site.xml文件
#添加如下內容
<!--Spark 依賴位置(注意:端口號 8020 必須和 namenode 的端口號一致)-->
<property>
 <name>spark.yarn.jars</name>
 <value>hdfs://hadoop101:8020/spark-jars/*</value>
</property>
<!--Hive 執行引擎-->
<property>
 <name>hive.execution.engine</name>
 <value>spark</value>
</property>
<!--Hive 和 Spark 連接超時時間-->
<property>
 <name>hive.spark.client.connect.timeout</name>
 <value>10000ms</value>
</property>

至此,hive on spark配置完成.后面再補充hive on tez.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM