Apache Hadoop 2.0.3 發布
Apache Hadoop 2.0.3發布了,在這次版本更新中,主要增加了以下幾個特性:
1. 引入一種新的HDFS HA解決方案QJM
之前NameNode HA已經有兩種解決方案,分別是基于共享存儲區的Backup Node方案和基于Bookeeper的方案,在該版本中引入另外一種方案:QJM(Quorum Journal Manager)。
該方案(HDFS-3077) 采用了quorum commit protocol,引入兩個角色:QuorumJournalManager和JournalNode,QuourumJournalManager通過 RPC將edits日志寫入N個JournalNode,只要有大多數(大于N/2個)JournalNode成功寫入則任務日志寫入成功。
2. YARN 多資源調度機制
在該版本中,YARN的資源調度器同時支持內存和CPU兩種資源調度,采用的調度算法源自Mesos的DRF(Dominant Resource Fairness),對應論文為:“Dominant Resource Fairness: Fair Allocation of Multiple Resources Types”,具體可參考 YARN-2和 Apache Mesos調度機制。
YARN 對內存資源和CPU資源采用了不同的資源隔離方案。對于內存資源,為了能夠更靈活的控制內存使用量,YARN采用了進程監控的方案控制內 存使用,即每個NodeManager會啟動一個額外監控線程監控每個container內存資源使用量,一旦發現它超過約定的資源量,則會將其殺死。采 用這種機制的另一個原因是Java中創建子進程采用了fork()+exec()的方案,子進程啟動瞬間,它使用的內存量與父進程一致,從外面看來,一個 進程使用內存量可能瞬間翻倍,然后又降下來,采用線程監控的方法可防止這種情況下導致swap操作。對于CPU資源,則采用了Cgroups進行資源隔 離。具體可參考 YARN-3。
3. YARN ResourceManager重啟機制
該版本引入了一個簡單的ResourceManager重啟機制,保證RM重啟后,各個應用工程序可繼續運行而不受影響。需要注意的是,這只是第 一階段的實現,還很不完整,比如不能向NameNode HA那樣做到自動切換,不能恢復所有正在運行的Container,Application和ApplicationMaster而只是重新啟動另外一個 而已,具體可參考 YARN-230。
4. YARN穩定性和擴展性得到驗證
Yahoo已使用YARN在超過3萬個節點上運行了14 million個應用程序,具體可參考: Hadoop at Yahoo!: More Than Ever Before。
詳細信息:Announcing Apache Hadoop 2.0.3 Release and Roadmap
來自:董的博客