Hadoop介紹快速入門


Apache Hadoop 是用於開發在分散式計算環境中執行的資料處理應用程式的框架。類似於在個人計算機系統的本地檔案系統的資料,在 Hadoop 資料儲存在被稱為作為Hadoop分散式檔案系統的分散式檔案系統。處理模型是基於“資料區域性性”的概念,其中的計算邏輯被傳送到包含資料的叢集節點(伺服器)。這個計算邏輯不過是寫在編譯的高階語言程式,例如 Java. 這樣的程式來處理Hadoop 儲存 的 HDFS 資料。

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叢集包括資料中心,機架和其實際執行作業的節點。這裡,資料中心包括機架,機架是由節點組成。可用網路頻寬進程的變化取決於進程的位置。 也就是說,可用頻寬變得更小,因為 -

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