1. 程式人生 > 其它 >Hive on Tez

Hive on Tez

一 安裝tez

  1.下載tez.tar

  2.安裝 tar -zxvf tez-0.9.1.tar.gz -C /opt/module

  3.修改名稱 mv tez-0.9.1-bin tez-0.9.1

二 在Hive中配置tez

  1.進入Hive的配置目錄/opt/module/hive/conf

  2.在hive-env.sh檔案中新增Tez環境變數配置和依賴包環境變數配置

  vim hive_env.sh

  新增配置如下:

# 設定Hadoop叢集的安裝目錄
export HADOOP_HOME=/opt/module/hadoop-2.8.1 #讀者自己的hadoop路徑

# 設定Hive的配置檔案目錄
export HIVE_CONF_DIR
=/opt/module/hive-3.1.2/conf # 讀者自己的hive路徑 # 設定執行Tez環境所需的jar包路徑 export TEZ_HOME=/opt/module/tez-0.9.1 #是讀者自己的Tez的解壓目錄 export TEZ_JARS="" for jar in `ls $TEZ_HOME | grep jar`; do export TEZ_JARS=$TEZ_JARS:$TEZ_HOME/$jar done for jar in `ls $TEZ_HOME/lib`; do export TEZ_JARS=$TEZ_JARS:$TEZ_HOME/lib/$jar done export HIVE_AUX_JARS_PATH
=/opt/module/hadoop-2.8.1/share/hadoop/common/hadoop-lzo-0.4.20.jar$TEZ_JARS #讀者自己的hadoop和lzo路徑

  3.在hive-site.xml檔案中新增如下配置,更改Hive引擎為Tez

<property> 
    <name>hive.execution.engine</name> 
    <value>tez</value> 
</property>

三 配置Tez

在Hive的/opt/module/hive/conf目錄下建立一個tez-site.xml檔案

在檔案中新增如下內容:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
#配置 Tez 中使用的 uris 的 jar 包路徑
<property>
        <name>tez.lib.uris</name>
        <value>${fs.defaultFS}/tez/tez-0.9.1,${fs.defaultFS}/tez/tez-0.9.1/lib</value>
</property>
#配置 Tez 中使用的 uris 的類路徑
<property>
        <name>tez.lib.uris.classpath</name>
        <value>${fs.defaultFS}/tez/tez-0.9.1,${fs.defaultFS}/tez/tez-0.9.1/lib</value>
</property>
#是否使用 Hadoop 依賴
<property>
        <name>tez.use.cluster.hadoop-libs</name>
        <value>true</value>
</property>
#配置 Tez 自己的歷史伺服器
<property>
        <name>tez.history.logging.service.class</name>
        <value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>
</property>
</configuration>

四 上傳Tez到Hadoop叢集

將/opt/module/tez-0.9.1上傳到HDFS的/tez/目錄下(注意:如果路徑不是/tez,則需要修改相對應的上面配置檔案中的tez的叢集路徑)

# hadoop建立目錄
hadoop fs -mkdir /tez

# 上傳tez
hadoop fs -put /opt/module/tez-0.9.1 /tez

# 檢視目錄
hadoop fs -ls /tez

/tez/tez-0.9.1

# 刪除目錄檔案
hadoop fs -rm -r /tez

# 刪除檔案
hadoop fs -rm -f /tez/filename #filename是你檔案的名稱

五 測試

  1.啟動hive(前提需要啟動hadoop叢集)

# namenode
sbin/start-dfs.sh

#ResourceManager
sbin/start-yarn.sh

# hive_metastore_service
bin/hive --service metastore &

  cd /opt/module/hive

  bin/hive

  2.建立庫和LZO表

show database;

create database lxz_base;

use lxz_base;

create table student(id int,name string);

  3.插入資料

insert into student values(1,"zhangsan");

4.沒有報錯則為成功

# 檢視資料
select id ,name from student;

5.登入YARN WEB檢視排程引擎是否是Tez

確保Yarn叢集開啟

瀏覽器登陸:hadoop2:8088

  六 啟動hive報錯問題

不要為了追逐,而忘記當初的樣子。