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