2014-11-24 74 views

回答

3

Hadoop由2個組件HDFS和MapReduce組成。

  • HDFS是用於存儲數據,這是高度可擴展的&故障tolerent大塊的分佈式文件系統。
  • MapReduce另一方面是可以處理存儲在HDFS中的數據的處理引擎。 MR試圖將計算帶到數據所在的位置(數據局部性)。

爲了設計算法來處理/分析存儲在HDFS數據,MapReduce的提供瞭如下的API:

  • JAVA API - 允許用戶編寫MapReduce應用,通常在2個階段Mapper & Reducer
  • Streaming API - 允許用戶編寫地圖&減少動態編程語言如Python/Perl/Ruby/Shell/...
  • 管道 - 允許用戶寫入地圖&減少在C++

Pig & Hive另一方面是坐在的MapReduce的頂部,並且可以轉換成寫在PigLatin(數據流語言)或代碼中的框架HiveQL(類似於SQL的語法)分別用於設置MapReduce作業,節省了大量的編程時間。