Apache Hadoop
Apache Hadoop是一款支援數據密集型分佈式應用程式並以Apache 2.0許可協定發佈的開源軟體框架,有助於使用許多電腦組成的網路來解決資料、計算密集型的問題。基於MapReduce計算模型,它為巨量資料的分散式儲存與處理提供了一個軟體框架。所有的Hadoop模組都有一個基本假設,即硬體故障是常見情況,應該由框架自動處理[3]。
原作者 | Doug Cutting, Mike Cafarella |
---|---|
開發者 | Apache軟體基金會 |
首次釋出 | 2006年4月1日[1] |
目前版本 |
|
原始碼庫 | |
程式語言 | Java |
作業系統 | 跨平台 |
類型 | 巨量資料、分佈式系統 |
授權條款 | Apache授權條款 2.0 |
網站 | hadoop |
Apache Hadoop的核心模組分為儲存和計算模組,前者被稱為Hadoop分散式檔案系統(HDFS),後者即MapReduce計算模型。Hadoop框架先將檔案分成資料塊並分散式地儲存在叢集的計算節點中,接著將負責計算任務的代碼傳送給各節點,讓其能夠並列地處理資料。這種方法有效利用了資料局部性,令各節點分別處理其能夠訪問的資料。與傳統的超級電腦架構相比,這使得資料集的處理速度更快、效率更高[4][5]。
Apache Hadoop框架由以下基本模組構成:
- Hadoop Common – 包含了其他Hadoop 模組所需的庫和實用程式;
- Hadoop Distributed File System (HDFS) – 一種將資料儲存在叢集中多個節點中的分散式檔案系統,能夠提供很高的頻寬;
- Hadoop YARN – (於2012年引入) 一個負責管理叢集中計算資源,並實現使用者程式排程的平台[6][7];
- Hadoop MapReduce – 用於大規模資料處理的MapReduce計算模型實現;
- Hadoop Ozone – (於2020年引入) Hadoop的對象儲存。
Hadoop 一詞通常代指其基本模組和子模組以及生態系統[8],或可以安裝在 Hadoop 之上的軟體套件的集合,例如Apache Pig、Apache Hive、Apache HBase、Apache Phoenix、Apache Spark、Apache ZooKeeper、Cloudera Impala、Apache Flume、Apache Sqoop、Apache Oozie和Apache Storm[9]。
Apache Hadoop的MapReduce和HDFS模組的靈感來源於Google的MapReduce和Google File System論文[10]。
Hadoop 框架本身主要是用Java程式語言編寫的,也包括了一些C語言編寫的本機代碼和Shell指令碼編寫的命令列實用程式。儘管MapReduce Java代碼很常見,但任何程式語言都可以與Hadoop Streaming一起使用來實現使用者程式的map和reduce部分[11]。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應用程式。[12]
其他使用者
編輯其他知名使用者包括[13]:
Hadoop與Sun Grid Engine
編輯昇陽電腦的Sun Grid Engine可以用來排程Hadoop Job。[14][15]
Hadoop與Condor
編輯威斯康辛大學麥迪遜分校的Condor計算機叢集軟體也可以用作Hadoop Job的排程。[16]
參見
編輯- 巨量資料
- 雲端運算
- 高效能計算叢集
- OpenStack-以Apache授權條款授權的雲端運算軟體。
- Apache Spark
參考文獻
編輯- ^ Hadoop Releases. apache.org. Apache Software Foundation. [2019-04-28]. (原始內容存檔於2019-04-28).
- ^ Release 3.4.0 available. [2024年4月10日].
- ^ Welcome to Apache Hadoop!. hadoop.apache.org. [2016-08-25]. (原始內容存檔於2017-09-23).
- ^ Malak, Michael. Data Locality: HPC vs. Hadoop vs. Spark. datascienceassn.org. Data Science Association. 2014-09-19 [2014-10-30]. (原始內容存檔於2017-09-10).
- ^ Wang, Yandong; Goldstone, Robin; Yu, Weikuan; Wang, Teng. Characterization and Optimization of Memory-Resident MapReduce on HPC Systems. 2014 IEEE 28th International Parallel and Distributed Processing Symposium. IEEE. October 2014: 799–808. ISBN 978-1-4799-3800-1. S2CID 11157612. doi:10.1109/IPDPS.2014.87.
- ^ Resource (Apache Hadoop Main 2.5.1 API). apache.org. Apache Software Foundation. 2014-09-12 [2014-09-30]. (原始內容存檔於2014-10-06).
- ^ Murthy, Arun. Apache Hadoop YARN – Concepts and Applications. hortonworks.com. Hortonworks. 2012-08-15 [2014-09-30]. (原始內容存檔於2017-09-11).
- ^ Continuuity Raises $10 Million Series A Round to Ignite Big Data Application Development Within the Hadoop Ecosystem. finance.yahoo.com. Marketwired. 2012-11-14 [2014-10-30]. (原始內容存檔於2017-09-10).
- ^ Hadoop-related projects at. Hadoop.apache.org. [2013-10-17]. (原始內容存檔於2017-09-23).
- ^ Data Science and Big Data Analytics: Discovering, Analyzing, Visualizing and Presenting Data. John Wiley & Sons. 2014-12-19: 300 [2015-01-29]. ISBN 9781118876220.
- ^ nlpatumd; Adventures with Hadoop and Perl. Mail-archive.com. 2010-05-02 [2013-04-05]. (原始內容存檔於2017-08-14).
- ^ Yahoo! Launches World's Largest Hadoop Production Application (Hadoop and Distributed Computing at Yahoo!). [2008-09-04]. (原始內容存檔於2008-05-14).
- ^ PoweredBy. [2008-09-07]. (原始內容存檔於2012-11-29).
- ^ Creating Hadoop pe under SGE. Sun Microsystems. 2008-01-16 [2008-09-04]. (原始內容存檔於2008-09-12).
- ^ HDFS-Aware Scheduling With Grid Engine (PDF). Sun Microsystems. 2009-09-10.[永久失效連結]
- ^ Condor integrated with Hadoop's Map Reduce (PDF). 威斯康辛大學麥迪遜分校. 2010-04-15 [2011-03-15]. (原始內容存檔 (PDF)於2011-04-01).
外部連結
編輯