如何學習Hadoop

好程式設計師發表於2020-11-05

  如何學習Hadoop ,如何學習Hadoop ,對大資料開發感興趣的小夥伴就隨著小編一起來了解一下吧。

   Hadoop 實現了一個分散式檔案系統 (Hadoop Distributed File System) ,簡稱 HDFS HDFS 有高容錯性的特點,並且設計用來部署在低廉的 (low-cost) 硬體上 ; 而且它提供高吞吐量 (high throughput) 來訪問應用程式的資料,適合那些有著超大資料集 (large data set) 的應用程式。 HDFS 放寬了 (relax)POSIX 的要求,可以以流的形式訪問 (streaming access) 檔案系統中的資料。

   Hadoop 的框架最核心的設計就是: HDFS MapReduce HDFS 為海量的資料提供了儲存,則 MapReduce 為海量的資料提供了計算。一句話來講 Hadoop 就是儲存加計算。

   Hadoop 是一個能夠讓使用者輕鬆架構和使用的分散式計算平臺。使用者可以輕鬆地在 Hadoop 上開發和執行處理海量資料的應用程式。它主要有以下幾個優點:

   1 、高可靠性 Hadoop 按位儲存和處理資料的能力值得人們信賴。

   2 、高擴充套件性 Hadoop 是在可用的計算機集簇間分配資料並完成計算任務的,這些集簇可以方便地擴充套件到數以千計的節點中。

   3 、高效性 Hadoop 能夠在節點之間動態地移動資料,並保證各個節點的動態平衡,因此處理速度非常快。

   4 、高容錯性 Hadoop 能夠自動儲存資料的多個副本,並且能夠自動將失敗的任務重新分配。

   5 、低成本 與一體機、商用資料倉儲以及 QlikView Yonghong Z-Suite 等資料集市相比, hadoop 是開源的,專案的軟體成本因此會大大降低。

   Hadoop 帶有用 Java 語言編寫的框架,因此執行在 Linux 生產平臺上是非常理想的。 Hadoop 上的應用程式也可以使用其他語言編寫,比如 C++

   Hadoop 大資料處理的意義:

   Hadoop 得以在大資料處理應用中廣泛應用得益於其自身在資料提取、變形和載入 (ETL) 方面上的天然優勢。 Hadoop 的分散式架構,將大資料處理引擎儘可能的靠近儲存,對例如像 ETL 這樣的批處理操作相對合適,因為類似這樣操作的批處理結果可以直接走向儲存。 Hadoop MapReduce 功能實現了將單個任務打碎,並將碎片任務 (Map) 傳送到多個節點上,之後再以單個資料集的形式載入 (Reduce) 到資料倉儲裡。

   Hadoop 由以下幾個專案構成:

   1 Hadoop Common Hadoop 體系最底層的一個模組,為 Hadoop 各子專案提供各種工具,如:配置檔案和日誌操作等。

   2 HDFS :分散式檔案系統,提供高吞吐量的應用程式資料訪問,對外部客戶機而言, HDFS 就像一個傳統的分級檔案系統。可以建立、刪除、移動或重新命名檔案,等等。但是 HDFS 的架構是基於一組特定的節點構建的,這是由它自身的特點決定的。這些節點包括 NameNode( 僅一個 ) ,它在 HDFS 內部提供後設資料服務 ;DataNode ,它為 HDFS 提供儲存塊。

   由於僅存在一個 NameNode ,因此這是 HDFS 的一個缺點 ( 單點失敗 ) 。 儲存在 HDFS 中的檔案被分成塊,然後將這些塊複製到多個計算機中 (DataNode) 。這與傳統的 RAID 架構大不相同。塊的大小 ( 通常為 64MB) 和複製的塊數量在建立檔案時由客戶機決定。 NameNode 可以控制所有檔案操作。 HDFS 內部的所有通訊都基於標準的 TCP/IP 協議。

   3 MapReduce :一個分散式海量資料處理的軟體框架集計算叢集。

   4 Avro doug cutting 主持的 RPC 專案,主要負責資料的序列化。有點類似 Google protobuf Facebook thrift avro 用來做以後 hadoop RPC ,使 hadoop RPC 模組通訊速度更快、資料結構更緊湊。

   5 Hive :類似 CloudBase ,也是基於 hadoop 分散式計算平臺上的提供 data warehouse sql 功能的一套軟體。使得儲存在 hadoop 裡面的海量資料的彙總,即席查詢簡單化。 hive 提供了一套 QL 的查詢語言,以 sql 為基礎,使用起來很方便。

   6 HBase :基於 Hadoop Distributed File System ,是一個開源的,基於列儲存模型的可擴充套件的分散式資料庫,支援大型表的儲存結構化資料。

   7 Pig :是一個平行計算的高階的資料流語言和執行框架 , SQL-like 語言,是在 MapReduce 上構建的一種高階查詢語言,把一些運算編譯進 MapReduce 模型的 Map Reduce 中,並且使用者可以定義自己的功能。

   8 ZooKeeper Google Chubby 一個開源的實現。它是一個針對大型分散式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、分散式同步、組服務等。 ZooKeeper 的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。

   9 Chukwa :一個管理大型分散式系統的資料採集系統 由 yahoo 貢獻。

   10 Cassandra :無單點故障的可擴充套件的多主資料庫 。

   11 Mahout :一個可擴充套件的機器學習和資料探勘庫 。

   Hadoop 設計之初的目標就定位於高可靠性、高可擴充性、高容錯性和高效性,正是這些設計上與生俱來的優點,才使得 Hadoop 一出現就受到眾多大公司的青睞,同時也引起了研究界的普遍關注。到目前為止, Hadoop 技術在網際網路領域已經得到了廣泛的運用,如 Yahoo Facebook Adobe IBM 、百度、阿里巴巴、騰訊、華為、中國移動等。

   關於怎樣學習hadoop ,首先要了解並且深刻認識什麼是 hadoop ,它的原理以及作用是什麼,包括基本構成是什麼,分別有什麼作用,當然,在學習之前,至少要掌握一門基礎語言,這樣在學習起來才會事半功倍。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2732475/,如需轉載,請註明出處,否則將追究法律責任。

相關文章