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 靈活的...