Apache Hadoop Apache Hadoop是一款支持數據密集型分佈式應用程序并以Apache 許可協議發佈的開源軟體框架有助于使用许多计算机组成的网络来解决数据计算密集型的问题基于MapReduce计算模型它为大数据的分布式存储与处理提供了一个软件框架所有的Hadoop模块都有一个基本假设即硬件故障是常见情况应该由框架自动处理 Apache Hadoop的核心模块分为存储和计算模块前者被称为Hadoop分布式文件系统HDFS后者即MapReduce计算模型Hadoop框架先将文件分成数据块并分布式地存储在集群的计算节点中接着将负责计算任务的代码传送给各节点让其能够并行地处理数据这种方法有效利用了数据局部性令各节点分别处理其能够访问的数据与传统的超级计算机架构相比这使得数据集的处理速度更快效率更高 Apache Hadoop框架由以下基本模块构成 Hadoop Common  包含了其他Hadoop 模块所需的库和实用程序 Hadoop Distributed File System HDFS  一种将数据存储在集群中多个节点中的分布式文件系统能够提供很高的带宽 Hadoop YARN  于年引入 一个负责管理集群中计算资源并实现用户程序调度的平台 Hadoop MapReduce  用于大规模数据处理的MapReduce计算模型实现 Hadoop Ozone  于年引入 Hadoop的对象存储 Hadoop 一词通常代指其基本模块和子模块以及生态系统或可以安装在 Hadoop 之上的软件包的集合例如Apache PigApache HiveApache HBaseApache PhoenixApache SparkApache ZooKeeperCloudera ImpalaApache FlumeApache SqoopApache Oozie和Apache Storm Apache Hadoop的MapReduce和HDFS模块的灵感来源于Google的MapReduce和Google File System论文 Hadoop 框架本身主要是用Java编程语言编写的也包括了一些C语言编写的本机代码和Shell脚本编写的命令行实用程序尽管MapReduce Java代码很常见但任何编程语言都可以与Hadoop Streaming一起使用来实现用户程序的map和reduce部分Hadoop 生态系统中的其他项目实现了更为丰富的用户界面