Hive更換Tez計算引擎

2021-10-06 06:17:07 字數 3137 閱讀 6546

centos7、jdk1.8、hive-2.3.6、hadoop-2.7.7、tez-0.9.2

linux下hive的安裝

用hive直接編寫mr程式,假設有4個有依賴關係的mr作業,上圖中,藍色代表maptask,綠色代表reducetask,雲狀表示中間結果持久化到磁碟

tez可以將多個有依賴的作業轉換為乙個作業(dag),這樣只需要寫一次hdfs,且中間節點較少,從而大大提公升作業的計算效能

[xiaokang@hadoop01 ~]$ tar -zxvf apache-tez-0.9.2-bin.tar.gz -c /opt/software/

# 重新命名(可選)

[xiaokang@hadoop01 ~]$ mv /opt/software/apache-tez-0.9.2-bin/ /opt/software/tez-0.9.2

# 在hdfs上建立乙個目錄,用來存放tez依賴包

[xiaokang@hadoop01 ~]$ hdfs dfs -mkdir /tez

# 上傳tez依賴包

[xiaokang@hadoop ~]$ hdfs dfs -put ./apache-tez-0.9.2-bin.tar.gz /tez

進入 hive 的配置目錄/opt/software/hive-2.3.6/conf,在此目錄下需要建立乙個tez-site.xml檔案,內容如下:

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

>

>

>

tez.lib.urisname

>

>

$/tez/apache-tez-0.9.2-bin.tar.gzvalue

>

property

>

>

>

tez.use.cluster.hadoop-libsname

>

>

truevalue

>

property

>

>

>

tez.history.logging.service.classname

>

>

org.apache.tez.dag.history.logging.ats.atshistoryloggingservicevalue

>

property

>

configuration

>

hive-env.sh中的增加一下內容:

# 寫你的 tez 的解壓目錄

export tez_home=/opt/software/tez-0.9.2

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

tez_jars=

$hive_aux_jars_path=

$tez_jars

hive-site.xml中更改hive計算引擎為tez:

>

>

hive.execution.enginename

>

>

tezvalue

>

property

>

修改hadoop的yarn-site.xml檔案,加入以下內容:

>

>

yarn.nodemanager.vmem-check-enabledname

>

>

falsevalue

>

property

>

分發至其它節點並重新啟動hadoop集群

[xiaokang@hadoop01 ~]$ scp /opt/software/hadoop-2.7.7/etc/hadoop/yarn-site.xml xiaokang@hadoop02:/opt/software/hadoop-2.7.7/etc/hadoop/

[xiaokang@hadoop01 ~]$ scp /opt/software/hadoop-2.7.7/etc/hadoop/yarn-site.xml xiaokang@hadoop03:/opt/software/hadoop-2.7.7/etc/hadoop/

# 啟動hive

[xiaokang@hadoop01 ~]$ hive

# 建立一張測試表

hive (default)

> create table ods_user(id int,name string)

;# 插入資料

hive (default)

> insert into ods_user values(1,"xiaokang");

# 驗證資料是否插入成功

hive (default)

>

select * from ods_user;

okods_user.id ods_user.name

1 xiaokang

time taken: 0.301 seconds, fetched: 1 row(s)

插入資料時,出現如下介面,說明使用的是tez引擎

hive安裝Tez計算引擎

centos 7 hive 1.2.1 apache tez 0.9.1 上傳taz到hdfs中 hadoop fs mkdir tez hadoop fs put apache tez 0.9.1 bin.tar.gz tez 解壓縮tar zxvf apache tez 0.9.1 bin.ta...

設定hive執行引擎為Tez

我們知道hive預設計算引擎為mr,而mr的特性決定了它的運算速度並不是太讓人滿意。在此將其運算引擎修改為tez 當然在此需要先安裝tez tez基於記憶體的計算使得hive可以有更高的運算效率。安裝配置如下 在此假設已經安裝好基礎hadoop hive集群。2 解壓縮apache tez 0.9....

關於TEZ引擎的部分缺陷

很久沒更新部落格了,今天發現以前的小點還是等幫助到一些朋友的,今天也更新一下,打個卡。今天說一下tez引擎使用時容易犯錯的點吧。首先要知道tez是什麼,下圖為官網上對tez的簡略圖。官網首頁也介紹了tez的2個主要設計主題是 1.通過以下方式增強終端使用者的能力 富有表現力的資料流定義api 靈活的...