Apache Hadoop

Apache Hadoop
Hadoop Logo
原作者Doug Cutting, Mike Cafarella
開發者Apache软件基金会
首次发布2006年4月1日,​18年前​(2006-04-01[1]
当前版本
  • 3.4.0 (2024年3月17日)[2]
編輯維基數據鏈接
源代码库
  • git-wip-us.apache.org/repos/asf/hadoop.git
編輯維基數據鏈接
编程语言Java
操作系统跨平台
类型大數據分佈式系統
许可协议Apache許可證 2.0
网站hadoop.apache.org

Apache Hadoop是一款支持數據密集型分佈式應用程序并以Apache 2.0許可協議發佈的開源軟體框架,有助于使用许多计算机组成的网络来解决数据、计算密集型的问题。基于MapReduce计算模型,它为大数据分布式存储与处理提供了一个软件框架。所有的Hadoop模块都有一个基本假设,即硬件故障是常见情况,应该由框架自动处理[3]

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 PigApache HiveApache HBase、Apache Phoenix、Apache SparkApache ZooKeeper、Cloudera Impala、Apache Flume、Apache Sqoop、Apache Oozie和Apache Storm[9]

Apache Hadoop的MapReduce和HDFS模块的灵感来源于GoogleMapReduceGoogle File System论文[10]

Hadoop 框架本身主要是用Java编程语言编写的,也包括了一些C语言编写的本机代码和Shell脚本编写的命令行实用程序。尽管MapReduce Java代码很常见,但任何编程语言都可以与Hadoop Streaming一起使用来实现用户程序的map和reduce部分[11]。Hadoop 生态系统中的其他项目实现了更为丰富的用户界面。

主要子项目

Hadoop小计算机集群用Cubieboard电脑。
  • 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

相關项目

知名用戶

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]

參見

参考文献

  1. ^ Hadoop Releases. apache.org. Apache Software Foundation. [2019-04-28]. (原始内容存档于2019-04-28). 
  2. ^ Release 3.4.0 available. [2024年4月10日]. 
  3. ^ Welcome to Apache Hadoop!. hadoop.apache.org. [2016-08-25]. (原始内容存档于2017-09-23). 
  4. ^ Malak, Michael. Data Locality: HPC vs. Hadoop vs. Spark. datascienceassn.org. Data Science Association. 2014-09-19 [2014-10-30]. (原始内容存档于2017-09-10). 
  5. ^ 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. 
  6. ^ Resource (Apache Hadoop Main 2.5.1 API). apache.org. Apache Software Foundation. 2014-09-12 [2014-09-30]. (原始内容存档于2014-10-06). 
  7. ^ Murthy, Arun. Apache Hadoop YARN – Concepts and Applications. hortonworks.com. Hortonworks. 2012-08-15 [2014-09-30]. (原始内容存档于2017-09-11). 
  8. ^ 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). 
  9. ^ Hadoop-related projects at. Hadoop.apache.org. [2013-10-17]. (原始内容存档于2017-09-23). 
  10. ^ Data Science and Big Data Analytics: Discovering, Analyzing, Visualizing and Presenting Data. John Wiley & Sons. 2014-12-19: 300 [2015-01-29]. ISBN 9781118876220. 
  11. ^ nlpatumd; Adventures with Hadoop and Perl. Mail-archive.com. 2010-05-02 [2013-04-05]. (原始内容存档于2017-08-14). 
  12. ^ Yahoo! Launches World's Largest Hadoop Production Application (Hadoop and Distributed Computing at Yahoo!). [2008-09-04]. (原始内容存档于2008-05-14). 
  13. ^ PoweredBy. [2008-09-07]. (原始内容存档于2012-11-29). 
  14. ^ Creating Hadoop pe under SGE. Sun Microsystems. 2008-01-16 [2008-09-04]. (原始内容存档于2008-09-12). 
  15. ^ HDFS-Aware Scheduling With Grid Engine (PDF). Sun Microsystems. 2009-09-10. [永久失效連結]
  16. ^ Condor integrated with Hadoop's Map Reduce (PDF). 威斯康辛大學麥迪遜分校. 2010-04-15 [2011-03-15]. (原始内容存档 (PDF)于2011-04-01). 

外部連結

顶级项目
  • Abdera英语Apache Abdera
  • Accumulo英语Apache Accumulo
  • ActiveMQ
  • Ambari英语Apache Ambari
  • Ant
  • Aries英语Apache Aries
  • Apache Arrow
  • Apache HTTP Server
  • APR
  • Avro
  • Axis
  • Axis2
  • Beam
  • Bloodhound英语Apache Bloodhound
  • Apache Brooklyn英语Apache Brooklyn
  • Buildr英语Apache Buildr
  • Calcite英语Apache Calcite
  • Camel
  • Cassandra
  • Cayenne英语Apache Cayenne
  • Chemistry英语Apache Chemistry
  • CloudStack英语Apache CloudStack
  • Cocoon英语Apache Cocoon
  • Continuum英语Apache Continuum
  • Cordova
  • CouchDB
  • cTAKES英语cTAKES
  • CXF
  • Deltacloud英语Deltacloud
  • Derby
  • Directory英语Apache Directory Server
  • Drill英语Apache Drill
  • Empire-db英语Apache Empire-db
  • ECharts
  • Felix英语Apache Felix
  • Flex
  • Flink
  • Flume英语Apache Flume
  • Forrest英语Apache Forrest
  • Geronimo英语Apache Geronimo
  • Gora英语Apache Gora
  • Gump英语Apache Gump
  • Hadoop
  • Hama英语Apache Hama
  • HBase
  • Hive
  • Jackrabbit英语Apache Jackrabbit
  • James英语Apache James
  • JMeter英语Apache JMeter
  • Kafka
  • Karaf英语Apache Karaf
  • Kylin英语Apache Kylin
  • Lucene
  • Lenya英语Apache Lenya
  • Mahout英语Apache Mahout
  • Marmotta英语Apache Marmotta
  • Maven
  • MINA英语Apache MINA
  • mod_perl英语mod_perl
  • MyFaces英语Apache MyFaces
  • Nutch英语Apache Nutch
  • ODE英语Apache ODE
  • OFBiz英语Apache OFBiz
  • Oozie英语Oozie
  • OpenEJB英语Apache OpenEJB
  • OpenJPA英语Apache OpenJPA
  • OpenNLP
  • OpenOffice
  • PDFBox英语Apache PDFBox
  • Phoenix英语Apache Phoenix
  • POI
  • Pig英语Pig (programming tool)
  • Pivot英语Apache Pivot
  • Qpid英语Apache Qpid
  • River英语Apache River
  • Roller英语Apache Roller
  • RocketMQ
  • Samza英语Apache Samza
  • ServiceMix英语Apache ServiceMix
  • Shindig英语Apache Shindig
  • Shiro
  • Sling英语Apache Sling
  • Spark
  • Stanbol英语Apache Stanbol
  • Storm
  • SpamAssassin
  • Sqoop
  • Apache C++标准库英语stdcxx
  • Struts
  • Struts 2
  • Subversion
  • Tapestry
  • Thrift
  • Tiles英语Apache Tiles
  • Tika英语Apache Tika
  • Tomcat
  • Trafficserver
  • Turbine
  • Tuscany
  • UIMA
  • Velocity
  • Wave
  • Wicket
  • Wink英语Apache Wink
  • Xalan英语Xalan
  • Xerces英语Xerces
  • XMLBeans英语XMLBeans
  • ZooKeeper
ASF logo
Commons项目
  • Apache Commons Logging英语Apache Commons Logging
  • BCEL英语Byte Code Engineering Library
  • BSF英语Bean Scripting Framework
  • Commons Daemon英语Commons Daemon
  • Jelly英语Apache Jelly
Lucene项目
  • Lucene Java
  • Lucene.Net英语Lucene.Net
  • Nutch英语Nutch
  • Solr
Hadoop项目
其他项目
  • Batik
  • Chainsaw英语Chainsaw (log file viewer)
  • FOP
  • Log4j
  • XAP英语Apache XAP
  • Log4Net
  • Ivy英语Apache Ivy
孵化器项目
  • XAP英语Apache XAP
  • Samza英语Apache Samza
  • Storm
Apache Attic
  • AxKit英语AxKit
  • Beehive英语Apache Beehive
  • Click英语Apache Click
  • Apache BlueSky英语BlueSky Open Platform
  • Cactus英语Jakarta Cactus
  • Jakarta
  • Excalibur英语Apache Excalibur
  • Harmony
  • HiveMind英语Apache HiveMind
  • Lenya英语Apache Lenya
  • Slide英语Jakarta Slide
  • Shale英语Apache Shale
  • Shindig英语Apache Shindig
  • stdcxx英语Apache C++ Standard Library
  • iBATIS
  • XMLBeans英语XMLBeans
许可证标准
  • 分类 分类
  • 共享资源页面 维基共享

磁盘
  • ADFS英语Advanced Disc Filing System
  • AdvFS
  • Amiga FFS英语Amiga Fast File System
  • Amiga OFS英语Amiga Old File System
  • APFS
  • AthFS英语AtheOS File System
  • Bcachefs
  • BFS
    • Be文件系统英语Be File System
    • 启动文件系统英语Boot File System
  • Btrfs
  • DFS英语Disc Filing System
  • EFS
  • Episode英语Episode filesystem
  • ext
  • FAT
  • Files-11英语Files-11
  • Fossil
  • HAMMER英语HAMMER
  • HFS
  • HFS+
  • HPFS
  • HTFS英语High Throughput File System
  • IBM通用并行文件系统英语IBM General Parallel File System
  • JFS
  • LFS英语Log-structured File System (BSD)
  • MFS
    • Macintosh文件系统英语Macintosh File System
    • Tivo媒体文件系统英语Tivo Media File System
  • MINIX
  • NetWare文件系统英语NetWare File System
  • Next3英语Next3
  • NILFS英语NILFS
    • NILFS2英语NILFS2
  • NSS英语Novell Storage Services
  • NTFS
  • OneFS英语OneFS distributed file system
  • PFS英语Professional File System
  • QFS英语QFS
  • QNX4FS英语QNX4FS
  • ReFS
  • ReiserFS
    • Reiser4英语Reiser4
  • Reliance英语Reliance (file system)
  • Reliance Nitro英语Reliance Nitro
  • RFS
  • SFS英语Smart File System
  • Soup英语Soup (Apple)
  • Tux3英语Tux3
  • UBIFS
  • UFS
  • VxFS英语Veritas File System
  • WAFL英语Write Anywhere File Layout
  • Xiafs英语Xiafs
  • XFS
  • Xsan英语Xsan
  • zFS英语zFS (z/OS file system)
  • ZFS
  • HSF英语High Sierra Format
  • ISO 9660
  • ISO 13490英语ISO 13490
  • UDF
  • CXFS英语CXFS
  • GFS2英语GFS2
  • Google檔案系統
  • OCFS2英语OCFS2
  • OrangeFS英语OrangeFS
  • PVFS英语Parallel Virtual File System
  • QFS英语Quantcast File System
  • Xsan英语Xsan
  • 更多...
NAS
特殊
  • Aufs
  • AXFS英语AXFS
  • 启动文件系统英语Boot File System
  • CDfs英语CDfs
  • 光盘文件系统英语Compact Disc File System
  • Cramfs
  • Davfs2英语Davfs2
  • EROFS
  • FTPFS
  • FUSE
  • GmailFS
  • Lnfs
  • LTFS英语Linear Tape File System
  • MVFS英语Rational MultiVersion File System
  • SquashFS
  • UMSDOS英语FAT filesystem and Linux
  • OverlayFS
  • UnionFS英语UnionFS
  • WBFS英语WBFS
  • configfs英语configfs
  • devfs英语Device file
  • debugfs英语debugfs
  • kernfs英语kernfs (BSD)
  • procfs
  • specfs
  • sysfs
  • tmpfs
  • WinFS
加密英语Filesystem-level encryption
类型
  • 集群
    • 全局英语Global file system
    • 网格英语Grid File System
    • 自我认证英语Self-certifying File System
  • 闪存
  • 日志
  • 日志结构英语Log-structured file system
  • 对象
  • 面向记录英语Record-oriented filesystem
  • 语义英语Semantic file system
  • 隐写英语Steganographic file system
  • 合成英语Synthetic file system
  • 版本英语Versioning file system
特性
访问控制英语Computer access control
接口
规范控制数据库: 各地 編輯維基數據鏈接
  • 德国
  • 拉脱维亚
  • 捷克