Hadoop 2:大資料演進中的一次大飛躍
來源:互聯網
上載者:User
新的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並不只是煙霧或者上一代的鏡像。