Apache Hadoop
package.lua第80行Lua錯誤:module 'Module:CGroup/core' not found
頁面Module:Infobox/styles.css沒有內容。
| Hadoop Logo | |
| 腳本錯誤:沒有「InfoboxImageVariant」這個模塊。 | |
| 原作者 | Doug Cutting, Mike Cafarella |
|---|---|
| 開發者 | Apache軟件基金會 |
| 首次發佈 | 2006年4月1日[1] |
| 當前版本 | Template:Software version |
| 原始碼庫 | 頁面Template:Plainlist/styles.css沒有內容。 |
| 編程語言 | Java |
| 引擎 | 頁面Template:Plainlist/styles.css沒有內容。
|
| 作業系統 | 跨平台 |
| 類型 | 大數據、分佈式系統 |
| 許可協議 | Apache許可證 2.0 |
| 網站 | hadoop |
| 腳本錯誤:沒有「Template wrapper」這個模塊。 | |
Apache Hadoop是一款支持數據密集型分佈式應用程序並以Apache 2.0許可協議發佈的開源軟件框架,有助於使用許多計算機組成的網絡來解決數據、計算密集型的問題。基於MapReduce計算模型,它為大數據的分佈式存儲與處理提供了一個軟件框架。所有的Hadoop模塊都有一個基本假設,即硬件故障是常見情況,應該由框架自動處理[2]。
Apache Hadoop的核心模塊分為存儲和計算模塊,前者被稱為Hadoop分佈式文件系統(HDFS),後者即MapReduce計算模型。Hadoop框架先將文件分成數據塊並分佈式地存儲在集群的計算節點中,接着將負責計算任務的代碼傳送給各節點,讓其能夠並行地處理數據。這種方法有效利用了數據局部性,令各節點分別處理其能夠訪問的數據。與傳統的超級計算機架構相比,這使得數據集的處理速度更快、效率更高[3][4]。
Apache Hadoop框架由以下基本模塊構成:
- Hadoop Common – 包含了其他Hadoop 模塊所需的庫和實用程序;
- Hadoop Distributed File System (HDFS) – 一種將數據存儲在集群中多個節點中的分佈式文件系統,能夠提供很高的帶寬;
- Hadoop YARN – (於2012年引入) 一個負責管理集群中計算資源,並實現用戶程序調度的平台[5][6];
- Hadoop MapReduce – 用於大規模數據處理的MapReduce計算模型實現;
- Hadoop Ozone – (於2020年引入) Hadoop的對象存儲。
Hadoop 一詞通常代指其基本模塊和子模塊以及生態系統[7],或可以安裝在 Hadoop 之上的軟件包的集合,例如Apache Pig、Apache Hive、Apache HBase、Apache Phoenix、Apache Spark、Apache ZooKeeper、Cloudera Impala、Apache Flume、Apache Sqoop、Apache Oozie和Apache Storm[8]。
Apache Hadoop的MapReduce和HDFS模塊的靈感來源於Google的MapReduce和Google File System論文[9]。
Hadoop 框架本身主要是用Java編程語言編寫的,也包括了一些C語言編寫的本機代碼和Shell腳本編寫的命令行實用程序。儘管MapReduce Java代碼很常見,但任何編程語言都可以與Hadoop Streaming一起使用來實現用戶程序的map和reduce部分[10]。Hadoop 生態系統中的其他項目實現了更為豐富的用戶界面。
主要子項目[編輯]
- Hadoop Common:在0.20及以前的版本中,包含HDFS、MapReduce和其他項目公共內容,從0.21開始HDFS和MapReduce被分離為獨立的子項目,其餘內容為Hadoop Common
- HDFS:Hadoop分佈式文件系統(Distributed File System)-HDFS(Hadoop Distributed File System)
- MapReduce:並行計算框架,0.20前使用org.apache.hadoop.mapred舊接口,0.20版本開始引入org.apache.hadoop.mapreduce的新API
相關項目[編輯]
- Apache HBase:分佈式NoSQL列數據庫,類似谷歌公司BigTable。
- Apache Hive:構建於hadoop之上的數據倉庫,通過一種類SQL語言HiveQL為用戶提供數據的歸納、查詢和分析等功能。Hive最初由Facebook貢獻。
- Apache Mahout:機器學習算法軟件包。
- Apache Sqoop:結構化數據(如關係數據庫)與Apache Hadoop之間的數據轉換工具。
- Apache ZooKeeper:分佈式鎖設施,提供類似Google Chubby的功能,由Facebook貢獻。
- Apache Avro:新的數據序列化格式與傳輸工具,將逐步取代Hadoop原有的IPC機制。
知名用戶[編輯]
Hadoop在Yahoo!的應用[編輯]
2008年2月19日,雅虎使用10,000個微處理器核心的Linux計算機集群運行一個Hadoop應用程式。[11]
其他用戶[編輯]
其他知名用戶包括[12]:
Hadoop與Sun Grid Engine[編輯]
昇陽電腦的Sun Grid Engine可以用來調度Hadoop Job。[13][14]
Hadoop與Condor[編輯]
威斯康辛大學麥迪遜分校的Condor計算機集群軟件也可以用作Hadoop Job的排程。[15]
參見[編輯]
參考文獻[編輯]
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found[永久失效連結]
- ↑ package.lua第80行Lua錯誤:module 'Module:Citation/CS1/Identifiers' not found
外部連結[編輯]
package.lua第80行Lua錯誤:module 'Module:Navbar/configuration' not found package.lua第80行Lua錯誤:module 'Module:Navbar/configuration' not found package.lua第80行Lua錯誤:module 'Module:Authority control/config' not found