Apache Hadoop

Apache Hadoop是一款支持數據密集型分佈式應用程序并以Apache 2.0許可協議發佈的開源軟體框架，有助于使用许多计算机组成的网络来解决数据、计算密集型的问题。基于MapReduce计算模型，它为大数据的分布式存储与处理提供了一个软件框架。所有的Hadoop模块都有一个基本假设，即硬件故障是常见情况，应该由框架自动处理。 Apache Hadoop的核心模块分为存储和计算模块，前者被称为Hadoop分布式文件系统（HDFS），后者即MapReduce计算模型。Hadoop框架先将文件分成数据块并分布式地存储在集群的计算节点中，接着将负责计算任务的代码传送给各节点，让其能够并行地处理数据。这种方法有效利用了数据局部性，令各节点分别处理其能够访问的数据。与传统的超级计算机架构相比，这使得数据集的处理速度更快、效率更高。 Apache Hadoop框架由以下基本模块构成： Hadoop Common – 包含了其他Hadoop 模块所需的库和实用程序； Hadoop Distributed File System (HDFS) – 一种将数据存储在集群中多个节点中的分布式文件系统，能够提供很高的带宽； Hadoop YARN – （于2012年引入） 一个负责管理集群中计算资源，并实现用户程序调度的平台； Hadoop MapReduce – 用于大规模数据处理的MapReduce计算模型实现； Hadoop Ozone – （于2020年引入） Hadoop的对象存储。 Hadoop 一词通常代指其基本模块和子模块以及生态系统，或可以安装在 Hadoop 之上的软件包的集合，例如Apache Pig、Apache Hive、Apache HBase、Apache Phoenix、Apache Spark、Apache ZooKeeper、Cloudera Impala、Apache Flume、Apache Sqoop、Apache Oozie和Apache Storm。 Apache Hadoop的MapReduce和HDFS模块的灵感来源于Google的MapReduce和Google File System论文。 Hadoop 框架本身主要是用Java编程语言编写的，也包括了一些C语言编写的本机代码和Shell脚本编写的命令行实用程序。尽管MapReduce Java代码很常见，但任何编程语言都可以与Hadoop Streaming一起使用来实现用户程序的map和reduce部分。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机制。 2008年2月19日，雅虎使用10,000個微處理器核心的Linux计算机集群運行一個Hadoop應用程式。 其他知名用戶包括： A9.com Facebook Fox Interactive Media 华为 IBM ImageShack 資訊科學研究院 Joost Last.fm Powerset 紐約時報 Rackspace Veoh 中華電信 中国移动 昇陽電腦的Sun Grid Engine可以用来调度Hadoop Job。 威斯康辛大學麥迪遜分校的Condor計算機集群軟件也可以用作Hadoop Job的排程。 大数据 雲端運算 高性能計算集群 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）.  Hadoop官方網站（页面存档备份，存于互联网档案馆）