Apache Hadoop 入門教程第一章

Apache Hadoop 是一個由 Apache 基金會所開發的分佈式系統基礎架構。可以讓用戶在不瞭解分佈式底層細節的情況下,開發出可靠、可擴展的分佈式計算應用。

Apache Hadoop 框架,允許用戶使用簡單的編程模型來實現計算機集羣的大型數據集的分佈式處理。它的目的是支持從單一服務器到上千臺機器的擴展,充分利用了每臺機器所提供本地計算和存儲,而不是依靠硬件來提供高可用性。其本身被設計成在應用層檢測和處理故障的庫,對於計算機集羣來說,其中每臺機器的頂層都被設計成可以容錯的,以便提供一個高度可用的服務。

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

Apache Hadoop 簡介

正如上一節 MapReduce 所提到的那樣,Apache Hadoop 受到了 Google 的 GFS 和 MapReduce 的啓發,而前者產生了 Apache Hadoop 的分佈式文件系統 NDFS (Nutch Distributed File System) ,而後者也被納入到 Apache Hadoop 作爲核心組件之一。

Apache Hadoop 的雛形開始於2002年的 Apache 的 Nutch。Nutch 是一個開源 Java 實現的搜索引擎。它提供了我們運行自己的搜索引擎所需的全部工具,包括全文搜索和 Web 爬蟲。

隨後在 2003 年 Google 發表了一篇技術學術論文關於 Google 文件系統(GFS)。GFS 也就是 Google File System,是 Google 公司爲了存儲海量搜索數據而設計的專用文件系統。

2004年 Nutch 創始人 Doug Cutting(同時也是 Apache Lucene 的創始人) 基於 Google 的 GFS 論文實現了分佈式文件存儲系統名爲 NDFS。

2004年 Google 又發表了一篇技術學術論文,向全世界介紹了 MapReduce。2005年 Doug Cutting 又基於 MapReduce,在 Nutch 搜索引擎實現了該功能。

2006年,Yahoo! 僱用了 Doug Cutting,Doug Cutting 將 NDFS 和MapReduce 升級命名爲 Hadoop。Yahoo! 開建了一個獨立的團隊給 Goug Cutting 專門研究發展 Hadoop。

2008年1月,Hadoop 成爲了 Apache 頂級項目。之後 Hadoop 被成功的應用在了其他公司,其中包括 Last.fm、Facebook、《紐約時報》等。

2008年2月,Yahoo! 宣佈其搜索引擎產品部署在一個擁有1萬個內核的 Hadoop 集羣上。

2008年4月,Hadoop 打破世界記錄,稱爲最快排序1TB數據的系統。有關該報道的記錄,可以參閱《Apache Hadoop Wins Terabyte Sort Benchmark》(見 https://developer.yahoo.com/blogs/hadoop/apache-hadoop-wins-terabyte-sort-benchmark-408.html)。

截止目前,Apache Hadoop 的最新版本爲 2.7.3。

Apache Hadoop 它主要有以下幾個優點:

高可靠性。Hadoop 按位存儲和處理數據的能力值得人們信賴。
高擴展性。Hadoop 是在可用的計算機集簇間分配數據並完成計算任務的,這些集簇可以方便地擴展到數以千計的節點中。
高效性。Hadoop 能夠在節點之間動態地移動數據,並保證各個節點的動態平衡,因此處理速度非常快。
高容錯性。Hadoop 能夠自動保存數據的多個副本,並且能夠自動將失敗的任務重新分配。
低成本。Hadoop 是開源的,項目的軟件成本因此會大大降低。
Apache Hadoop 核心組件

Apache Hadoop 包含以下模塊:

Hadoop Common:常見實用工具,用來支持其他 Hadoop 模塊。
Hadoop Distributed File System(HDFS):分佈式文件系統,它提供對應用程序數據的高吞吐量訪問。
Hadoop YARN:一個作業調度和集羣資源管理框架。
Hadoop MapReduce:基於 YARN 的大型數據集的並行處理系統。
其他與 Apache Hadoop 的相關項目包括:

Ambari:一個基於Web 的工具,用於配置、管理和監控的 Apache Hadoop 集羣,其中包括支持 Hadoop HDFS、Hadoop MapReduce、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig 和 Sqoop。Ambari 還提供了儀表盤查看集羣的健康,如熱圖,並能夠以用戶友好的方式來查看的 MapReduce、Pig 和 Hive 應用,方便診斷其性能。
Avro:數據序列化系統。
Cassandra:可擴展的、無單點故障的多主數據庫。
Chukwa:數據採集系統,用於管理大型分佈式系統。
HBase:一個可擴展的分佈式數據庫,支持結構化數據的大表存儲。(有關 HBase 的內容,會在後面章節講述)
Hive:數據倉庫基礎設施,提供數據彙總以及特定的查詢。

Mahout:一種可擴展的機器學習和數據挖掘庫。
Pig:一個高層次的數據流並行計算語言和執行框架。
Spark:Hadoop 數據的快速和通用計算引擎。Spark 提供了簡單和強大的編程模型用以支持廣泛的應用,其中包括 ETL、機器學習、流處理和圖形計算。(有關 Spark 的內容,會在後面章節講述)
TEZ:通用的數據流編程框架,建立在 Hadoop YARN 之上。它提供了一個強大而靈活的引擎來執行任意 DAG 任務,以實現批量和交互式數據的處理。TEZ 正在被 Hive、Pig 和 Hadoop 生態系統中其他框架所採用,也可以通過其他商業軟件(例如 ETL 工具),以取代的 Hadoop MapReduce 作爲底層執行引擎。
ZooKeeper:一個高性能的分佈式應用程序協調服務。(有關 ZooKeeper 的內容,會在後面章節講述)

很多人都知道我有大數據培訓資料,都天真的以爲我有全套的大數據開發、hadoop、spark等視頻學習資料。我想說你們是對的,我的確有大數據開發、hadoop、spark的全套視頻資料。
如果你對大數據開發感興趣可以加口羣領取免費學****習資料: 763835121

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章