新的Hadoop不僅能夠進一步刺激為Hadoop編寫應用程序,同時也將在Hadoop內創造全新的數據處理方法,這在此前的架構限制下是根本不可能實現的。總之,這是好東西。
一直以來是什么限制著Hadoop的發展?更重要的是,Hadoop的未來發展會是怎樣?
對于Hadoop的各種批評主要圍繞在其擴展限制,而這里最大的問題是其工作處理。Hadoop中的所有工作都是通過被稱為JobTracker的守護程序進行批處理,這制造了一個可擴展性和處理速度的瓶頸。
而在Hadoop 2,這種JobTracker的方法已經消失。Hadoop使用了全新的工作處理框架,使用兩個守護程序:ResourceManager—管理系統中的所有工作,以及NodeManager—在每個Hadoop節點上運行,并讓ResourceManager知道節點上發生的情況。每個正在運行的應用程序也有自己的管理程序—ApplicationMaster。
MapReduce也與之前完全不同,Apache給了它一個全新的名稱:YARN,或者Yet Another Resource Negotiator,另一種資源協調者,新的MapReduce運行作為其很多可能的組件之一。事實上,Apache聲稱,任何分布式應用程序都可以在YARN上運行,雖然需要一些移植。為此,Apache提供了一份與YARN兼容的應用程序列表,例如社會圖標分析系統Apache Giraph(Facebook在使用)。
Apache明智地決定不破壞向后兼容性,因此,MapReduce 2仍然將采用相同的API,現有的工作只需要重新編譯就能正常工作。
YARN讓Hadoop可以與其他Apache項目實現更多的跨平臺兼容性,來處理大數據。如果你使用其中一個平臺,那么使用其他平臺就會變得更加容易。Hadoop的這種改進將幫助推動Apache的其他項目。
這里最大的改進就是,MapReduce本身成為通過Hadoop挖掘數據的很多方式的一種。Apache自己的Spark(移植到YARN的另一種方式)可能比MapReduce更適合某些類型的工作,Hadoop 2給了你更多選擇,讓你選擇最合適的引擎。
兩個大型供應商Cloudera和Hortonworks對于YARN的重要性有著共同的看法,雖然他們從完全不同的方向使用Hadoop。Cloudera的Impala允許對HDFS存儲的數據運行低延遲性SQL查詢,這使其非常適合實時分析;而Hortonworks選擇使用Apache的原生Hive技術,該技術非常適合大數據倉庫操作(例如有很多連接型操作的長時間運行的查詢)
移植應用程序到YARN并不是簡單的工作,Hadoop在這方面帶來的回報將取決于YARN在新框架內的部署情況。Cloudera和Hortonworks都是Hadoop 2的堅實支持者,他們并沒有轉向其他技術或者堅持上一代技術,從這一點來看,Hadoop 2并不只是煙霧或者上一代的鏡像。