Hadoop生態系統-新手快速入門(含HDFS、HBase系統架構)

Hadoop簡介

Hadoop是一個由Apache基金會所開發的分佈式系統基礎架構。

用戶可以在不瞭解分佈式底層細節的情況下,開發分佈式程序。充分利用集群的威力進行高速運算和存儲。

Hadoop實現了一個分佈式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特點,並且設計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有著超大數據集(large data set)的應用程序。

Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的數據提供了存儲,而MapReduce則為海量的數據提供了計算。

Hadoop生態系統

廣義的Hadoop,一般稱為Hadoop生態系統,如下所示。

Hadoop生態系統-新手快速入門(含HDFS、HBase系統架構)

Hadoop生態系統中這些軟件的作用:

  • HDFS:Hadoop的分佈式文件系統,可以看見HBase、MapReduce這些軟件是運行在HDFS之上的,可以說是Hadoop生態系統的基石。
  • HBase:Google分佈式數據庫Bigtable的開源實現,是一個高可靠、高性能、面向列、可伸縮的分佈式數據庫,主要用來存儲非結構化和半結構化的鬆散數據。為了提高數據可靠性和健壯性,發揮HBase處理大數據量等功能,一般使用HDFS作為HBase的底層數據存儲方式。
  • MapReduce:分佈式計算框架。
  • Sqoop:協助RDBMS與Hadoop的Hive和HBase之間進行數據傳導的工具。
  • Hive:是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,並提供完整的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。
  • Pig:是一個基於Hadoop的大規模數據分析平臺,它提供的SQL-LIKE語言叫Pig Latin,該語言的編譯器會把類SQL的數據分析請求轉換為一系列經過優化處理的MapReduce運算。
  • ZooKeeper:是一個針對大型分佈式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、分佈式同步、組服務等。
  • Avro:是一個基於二進制數據傳輸高性能的中間件。在Hadoop的其他項目中例如HBase和Hive的Client端與服務端的數據傳輸也採用了這個工具。Avro是一個數據序列化的系統。Avro可以將數據結構或對象轉化成便於存儲或傳輸的格式。Avro設計之初就用來支持數據密集型應用,適合於遠程或本地大規模數據的存儲和交換。

HDFS 系統架構

HDFS 採用了主從(Master/Slave)結構模型,一個HDFS集群包括一個名稱節點(NameNode)和若干個數據節點(DataNode)。

  • 名稱節點(NameNode)作為中心服務器,負責管理文件系統的命名空間及客戶端對文件的訪問。HDFS集群中,只有唯一一個名稱節點。
  • 數據節點(DataNode)一般是一個節點運行一個數據節點進程,負責處理文件系統客戶端的讀寫請求,在名稱節點的統一調度下,進行數據塊(Blocks)的創建、刪除和複製等操作。
Hadoop生態系統-新手快速入門(含HDFS、HBase系統架構)

HDFS採用Java語言開發,因此任何支持JVM的機器都可以部署名稱節點和數據節點。

在配置好Hadoop 集群之後,可以通過瀏覽器訪問 http://[NameNodeIP]:9870,查詢HDFS文件系統。通過該Web界面,可以查看當前文件系統中各個節點的分佈信息。

Hadoop生態系統-新手快速入門(含HDFS、HBase系統架構)

HBase系統架構

HBase系統架構如下所示,包括客戶端、Zookeeper服務器、Master主服務器、Region服務器。一般而言,HBase會採用HDFS作為底層數據存儲。

Hadoop生態系統-新手快速入門(含HDFS、HBase系統架構)

在HBase服務器集群中,包含了一個Master和多個Region服務器,Master是HBase集群的“總管”,它必須知道Region服務器的狀態。

HBase中可以啟動多個Master,但是Zookeeper 可以幫助選舉出一個Master 作為集群的總管,並保證在任何時刻總有唯一一個Master在運行,這樣可以避免Master單點失效的問題。

Region服務器是HBase中最核心的模塊,負責維護分配給自己的Region,並響應用戶的讀寫請求。

Store是Region服務器的核心。每個Store對應了表中的一個列族的存儲。每一個Store包含了一個MemStore緩存和若干個StoreFile文件。

HBase採用HLog來保證系統發生故障時,能夠恢復到正確的狀態。HLog是磁盤上面的記錄文件,它記錄著所有的更新操作。

HBase系統為每個Region服務器配置了一個HLog文件,它是一種預寫式日誌(Write Ahead Log),也就是說,用戶更新數據必須首先被記入日誌後,才能寫入MemStore緩存。

此外,Pig和Hive還為HBase提供了高層語言支持,使得在HBase上進行數據統計處理變的非常簡單。 Sqoop則為HBase提供了方便的RDBMS數據導入功能,使得傳統數據庫數據向HBase中遷移變的非常方便。

Hadoop生態系統-新手快速入門(含HDFS、HBase系統架構)

注意:Hadoop 安裝完成之後,只包含HDFS和MapReduce,並不含HBase,因此需要在Hadoop 之上繼續安裝HBase。

相關推薦

推薦中...