我們知道hive預設計算引擎為mr,而mr的特性決定了它的運算速度並不是太讓人滿意。在此將其運算引擎修改為tez(當然在此需要先安裝tez),tez基於記憶體的計算使得hive可以有更高的運算效率。
安裝配置如下:
在此假設已經安裝好基礎hadoop、hive集群。
2、解壓縮apache-tez-0.9.1-bin.tar.gz到對應目錄並改名
tar -zxvf apache-tez-0.9.1-bin.tar.gz -c /usr/sft/
mv apache-tez-0.9.1-bin tez-0.9.1
在hive中配置tez3、在hive安裝目錄conf/hive-env.s**件中確保有如下配置
# set hadoop_home to point to a specific hadoop install directory
export hadoop_home=/usr/sft/hadoop-2.7.2
# hive configuration directory can be controlled by:
export hive_conf_dir=/usr/sft/hive-1.2.1/conf
# folder containing extra libraries required for hive compilation/execution can be controlled by:
export tez_home=/usr/sft/tez-0.9.1
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=$tez_jars
4、在hive-site.xml檔案中新增如下配置以更改hive計算引擎為tez(預設為mr)
hive.execution.engine
tez
5、 配置tez
在hive的conf目錄下建立tez-site.xml檔案並新增如下內容
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
tez.lib.uris
$/tez/tez-0.9.1,$/tez/tez-0.9.1/lib
tez.lib.uris.classpath
$/tez/tez-0.9.1,$/tez/tez-0.9.1/lib
tez.use.cluster.hadoop-libs
true
tez.history.logging.service.class
org.apache.tez.dag.history.logging.ats.atshistoryloggingservice
6、上傳tez到集群(也可以直接上傳壓縮包到hdfs上,此時注意路徑配置)
hadoop fs -mkdir /tez
hadoop fs -put /usr/sft/tez-0.9.1/ /tez
7、測試
1)啟動hive(發現已經繫結了tez)
8、因為tez需要基於記憶體計算,在啟動任務前會進行記憶體檢查(檢查依據為map與reduce任務所需記憶體總和),若記憶體不夠時會殺死執行程序。在記憶體資源預算有限時可以關閉虛擬機器記憶體檢查;修改yarn-site.xml如下:
yarn.nodemanager.vmem-check-enabled
false
Hive更換Tez計算引擎
centos7 jdk1.8 hive 2.3.6 hadoop 2.7.7 tez 0.9.2 linux下hive的安裝 用hive直接編寫mr程式,假設有4個有依賴關係的mr作業,上圖中,藍色代表maptask,綠色代表reducetask,雲狀表示中間結果持久化到磁碟 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底層執行引擎的深度剖析(免費)
一 裝備公升級 作為乙個資料倉儲工程師,你在職場中是不是日趨頻繁使用數倉工具hive?作為乙個高階sqler,你是否仰望著大資料計算的技術聖殿感到舉步維艱?作為乙個etl工程師,你是否覺得mapreduce的出現大大簡化了程式設計難度?作為乙個游刃有餘的bi運維工程師,你是否對hql轉換為mapre...