Hive llap服務安裝說明及測試
1.簡介說明
從Hive 2.0引入了LLAP(Live Long And Process),2.1進行了比較大的優化,可以說hive已經走向了內存計算,
目前hortonworks測試llap +tez比hive1.x快了25倍,禁不住誘惑來玩一下
2.LLAP安裝
2.1依賴
Hive llap服務安裝依賴先安裝tez,和slider(現在也可以不用),所以安裝llap前先安裝並測試好tez和slider;
2.2配置
Ambari安裝好之后,還需要額外的兩個步驟來開啟Hive LLAP:
1.在yarn中開啟Hive LLAP的優先使用權
2.打開hive中的Interactive Query開發並配置相關參數
以下是hive-site.xml配置 <!--llap configuration--> <property> <name>hive.execution.engine</name> <value>tez</value> </property>
<!--目前llap只支持tez做為引擎--> <property> <name>hive.llap.execution.mode</name> <value>all</value> </property> <!-- 有這四個auto, none, all, map選項,表示是否在llap或者container里運行查詢,all表示讓所有的task都在llap進程內執行--> <property> <name>hive.execution.mode</name> <value>llap</value> </property> <!-- 兩個選項[container, llap],表示查詢運行在container或者llap--> <property> <name>hive.llap.daemon.service.hosts</name> <value>@llap_service</value> </property> <!-- llap_service是啟動llap服務的時候--name指定的名字,可根據情況來設置--> <property> <name>hive.zookeeper.quorum</name> <value>hd21:2181,hd22:2181,hd23:2181</value> </property> <property> <name>hive.llap.daemon.memory.per.instance.mb</name> <value>25600</value> </property> <!-- LlapDaemon內存,需要在這里指定,hive --service --instances指定遇到過失敗--> <property> <name>hive.llap.daemon.num.executors</name> <value>8</value> </property> <!-- LlapDaemon core數--> <!--如下是HiveServer2的參數,用來啟用llap的並發查詢--> <property> <name>hive.server2.tez.default.queues</name> <value>root.storm</value> </property> <property> <name>hive.server2.tez.initialize.default.sessions</name> <value>true</value> </property> <property> <description>Set to the number of concurrent queries to run on the queues that are configured by hive.server2.tez.default.queues. This setting launches long-running Tez AMs (sessions). </description> <name>hive.server2.tez.sessions.per.default.queue</name> <value>2</value> </property>
2.3特殊注意
先檢查python版本,別低於2.5最好2.7.X吧,然后進入hive2.1.1主目錄下的scripts/llap/bin目錄下,
編輯runLlapDaemon.sh啟動腳本,在CLASSPATH變量中加入`hadoop classpath`,即加入hadoop的環境路徑,
避免出現找不到相關類庫的而導致的啟動失敗,如下:
3.啟動服務
hive --service llap --name llap_service --instances 5 --size 25g --loglevel INFO --cache 10g --executors 10 --iothreads 10 --slider-am-container-mb 1024 --args " -XX:+UseG1GC -XX:+ResizeTLAB -XX:+UseNUMA -XX:-ResizePLAB"
啟動服務的選項如下:
啟動成功:
啟動后會生成一個如下的文件夾:
進入可以看到有四個文件
其中run.sh這個啟動shell就只是用slider來提交llap到yarn的腳本./run.sh即可啟動到yarn中,啟動后,可以看到yarn中的application如下:
RUNNING狀態表示啟動運行成功;
查看nodemanager節點可以看到有相應的daemon進程如下:
啟動tez作業如下:
查看tez作業AM的資源情況可以看到tez的task都運行在llap中,只有am獨立container運行;
從性能效率看,llap確實有了明顯的提升,一個分區聚合數據和union相應另一個分區操作,數據100g,從資源時間消耗資源角度看資源減少了2倍,執行時間效率上提升了6倍,后面有空可以參照tpc-ds_v2.4.0做一些較全面的性能測試;
停止llap只用執行slider stop llap_service即可;