Llama-impala on yarn的中间协调服务
本文基于CDH發(fā)行版下的Hadoop Yarn和Impala
早期的Impala版本號中。為了使用Impala。我們一般會在以Client/Server的結(jié)構(gòu)在各個集群節(jié)點啟動impala-server、impala-state-store和impala-catalog服務(wù),而且在啟動過程中無法動態(tài)調(diào)整內(nèi)存和CPU的分配。CDH5之后,Impala開始支持Impala-on-yarn模式。通過一個叫做Llama(Long-Lived Application Master)的中間協(xié)調(diào)Yarn和Impala,向Hadoop Yarn資源管理器申請計算資源。
1、Llama介紹
Llama(Long-LivedApplicationMaster)是位于ClouderaImpala和HadoopYARN之間,用于協(xié)調(diào)資源管理的服務(wù)系統(tǒng)。
在一個Hadoop集群中,Impala能夠通過Llama預(yù)約、使用以及釋放資源分配,以降低運行Impala查詢時過多的資源管理用度。僅僅有在Impala中啟用資源管理。集群中的Llama服務(wù)才真正運作。
默認(rèn)情況下,YARN依據(jù)MapReduce工作的須要按位分配資源,而Impala則須要全部資源在同一時間可用,以保證查詢的中間結(jié)果可以在不同節(jié)點間交換,而不須要遲延查詢時間來等待新的資源分配,Llama就是為了在每一個Impala查詢開始運行前就可保證其須要的資源都可用而出現(xiàn)。
若一個查詢運行完成,Llama會將資源進行緩存。確保在運行Impala子查詢時能夠使用。這樣的緩存機制避免了每一個查詢運行前都須要進行新的資源請求。同一時候。假設(shè)YARN須要該資源用于其它工作,Llama就會將這部分資源還給YARN。
須要注意的是:Llama僅支持YARN。不能與MRv1結(jié)合使用。同一時候,Llama也是通過YARN的配置文件與Hadoop進行協(xié)作的。
2、控制計算資源預(yù)估
我們提交SQL到Impala后。有時會錯誤的預(yù)估該次查詢可能消耗的計算資源,Impala支持用戶設(shè)置默認(rèn)的內(nèi)存和CPU資源申請大小,SQL執(zhí)行過程中,一旦資源開始緊缺時,Impala會通過Llama向Yarn申請很多其它的資源來擴展(expanding)當(dāng)前的預(yù)留資源。一旦查詢作業(yè)完畢,Llama一般會將資源還給Yarn。用戶能夠在啟動使用impalad進程時加上-rm_always_use_defaults參數(shù)(必選)以及-rm_default_memory=size and -rm_default_cpu_cores(可選)。Cloudera官方建議使用Impala-on-yarn時加上這些啟動參數(shù),能夠讓查詢資源動態(tài)擴展。
3、驗證計算資源預(yù)估和實際使用
為了使用戶可以方便的驗證查詢語句所使用的集群資源大小,使用EXPLAIN語句可以查詢相關(guān)內(nèi)存預(yù)估的信息,以及使用到virtual core的大小。
使用EXPLAIN并不會真正提交查詢
4、資源限制的原理
? CPU限制是通過Linux CGroups機制。Yarn在各個節(jié)點啟動符合CGroups形式的Container進程
? 內(nèi)存限制是通過限制Impala的查詢內(nèi)存。一旦查詢請求被授權(quán),Impala會在運行前設(shè)置內(nèi)存上限
總結(jié)
以上是生活随笔為你收集整理的Llama-impala on yarn的中间协调服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LinkdedList
- 下一篇: ALV打印不显示打印界面的问题