1. 程式人生 > 其它 >apache 大資料平臺搭建(hive)

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;

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

3.啟動hadoop之後,執行hive命令,進入hive客戶端命令列

四.配置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.

一天一個小知識,日積月累,積沙成塔。。。