Hadoop介紹快速入門

Apache Hadoop 是用於開發在分佈式計算環境中執行的數據處理應用程序的框架。類似於在個人計算機系統的本地文件系統的數據,在 Hadoop 數據保存在被稱爲作爲Hadoop分佈式文件系統的分佈式文件系統。處理模型是基於「數據局部性」的概念,其中的計算邏輯被髮送到包含數據的集羣節點(服務器)。這個計算邏輯不過是寫在編譯的高級語言程序,例如 Java. 這樣的程序來處理Hadoop 存儲 的 HDFS 數據。

Hadoop是一個開源軟件框架。使用Hadoop構建的應用程序都分佈在集羣計算機商業大型數據集上運行。商業電腦便宜並廣泛使用。這些主要是在低成本計算上實現更大的計算能力非常有用。你造嗎?  計算機集羣由一組多個處理單元(存儲磁盤+處理器),其被連接到彼此,並作爲一個單一的系統。

Hadoop的組件

下圖顯示了 Hadoop 生態系統的各種組件

Hadoop介紹快速入門

Apache Hadoop 由兩個子項目組成 -

  1. Hadoop MapReduce : MapReduce 是一種計算模型及軟件架構,編寫在Hadoop上運行的應用程序。這些MapReduce程序能夠對大型集羣計算節點並行處理大量的數據。

  2. HDFS (Hadoop Distributed File System): HDFS 處理 Hadoop 應用程序的存儲部分。 MapReduce應用使用來自HDFS的數據。 HDFS創建數據塊的多個副本,並集羣分發它們到計算節點。這種分配使得應用可靠和極其迅速的計算。

雖然 Hadoop 是因爲 MapReduce 和分佈式文件系統 - HDFS 而最出名的, 該術語也是在分佈式計算和大規模數據處理的框架下的相關項目。 Apache Hadoop 的其他相關的項目包括有:Hive, HBase, Mahout, Sqoop , Flume 和 ZooKeeper.

Hadoop 功能

• 適用於大數據分析

作爲大數據在自然界中趨於分佈和非結構化,Hadoop 集羣最適合於大數據的分析。因爲,它處理邏輯(未實際數據)流向計算節點,更少的網絡帶寬消耗。這個概念被稱爲數據區域性概念,它可以幫助提高基於 Hadoop 應用程序的效率。

• 可擴展性

HADOOP集羣通過增加附加羣集節點可以容易地擴展到任何程度,並允許大數據的增長。 另外,標度不要求修改到應用程序邏輯。

• 容錯

HADOOP生態系統有一個規定,來複制輸入數據到其他羣集節點。這樣一來,在集羣某一節點有故障的情況下,數據處理仍然可以繼續,通過使用存儲另一個羣集節點上的數據。

網絡拓撲中的Hadoop

網絡拓撲結構(佈局),當 Hadoop 集羣的大小增長會影響到 Hadoop 集羣的性能。除了性能,人們還需要關心故障的高可用性和處理。爲了實現這個Hadoop集羣構造,利用了網絡拓撲。

Hadoop介紹快速入門

通常情況下,網絡帶寬是任何網絡要考慮的一個重要因素。然而,測量帶寬可能是比較困難的,在 Hadoop 中,網絡被表示爲樹,在 Hadoop 集羣節點之間樹(跳數)的距離是一個重要因素。在這裏,兩個節點之間的距離等於自己最近的公共祖先總距離。

Hadoop集羣包括數據中心,機架和其實際執行作業的節點。這裏,數據中心包括機架,機架是由節點組成。可用網絡帶寬進程的變化取決於進程的位置。 也就是說,可用帶寬變得更小,因爲 -

  • 在同一個節點上的進程
  • 同一機架上的不同節點
  • 在相同的數據中心的不同的機架節點
  • 在不同的數據中心節點