Apache Hadoop 是 Apache 提供的开源软件项目,面向可靠、可扩展的分布式计算。它以软件库和框架的形式运行在计算机集群上,允许使用简单的编程模型处理大型数据集。Hadoop 可以从单台服务器扩展到数千台机器,并利用各机器本地的计算与存储能力;与依赖硬件实现高可用的方式不同,它在应用层检测并处理故障,从而在可能发生故障的集群环境上提供高可用服务。项目同时提供分布式文件系统、作业调度与集群资源管理,以及基于 YARN 的并行数据处理模块。
核心功能
大型数据集的分布式处理
Apache Hadoop 的核心框架用于在计算机集群上分布式处理大型数据集,使用的是简单的编程模型。Hadoop MapReduce 是一个基于 YARN 的系统,面向大型数据集的并行处理,可将数据处理任务放在集群环境中执行。
分布式文件存储
Hadoop Distributed File System(HDFS)是 Hadoop 的分布式文件系统模块,为应用数据提供高吞吐访问。它与集群中的本地存储和计算能力结合,用于支撑分布式数据处理场景。
作业调度与资源管理
Hadoop YARN 是用于作业调度和集群资源管理的框架。它为集群中的任务安排与资源管理提供基础,并与 MapReduce 的并行处理系统配合工作。
集群规模扩展
Hadoop 的设计目标是从单台服务器扩展到数千台机器,每台机器都可以提供本地计算和存储。项目因此能够覆盖从单服务器部署到大规模计算机集群的不同规模。
应用层故障处理与高可用
Hadoop 不依赖硬件来提供高可用,而是由库本身在应用层检测并处理故障。由于集群中的每台计算机都可能发生故障,这种机制用于在存在节点故障风险的环境中提供高可用服务。
Apache Hadoop 模块化组成
项目包含 Hadoop Common、HDFS、Hadoop YARN 和 Hadoop MapReduce。Hadoop Common 提供支持其他 Hadoop 模块的通用工具;其余模块分别覆盖分布式文件系统、作业调度与集群资源管理,以及并行处理大型数据集。
使用方式
官网提供文档、下载入口和 Getting started 指南,用户可以下载 Apache Hadoop 发行版,并按照 Single Cluster 指南开始使用。正文没有提到注册要求、客户端或浏览器插件,也没有说明 API、命令行方式或需要自备模型 Key。3.4.3 版本的发布说明还指出,使用 hadoop-aws 模块的 s3a connector 时,需要从 Maven Central 下载所需版本的 AWS SDK,并将对应 JAR 复制到 share/hadoop/common/lib/。
适用人群与场景
需要在集群上处理大型数据集的研究机构和企业,可以使用 Hadoop 的分布式处理能力。进行生产环境部署的组织,可以利用 HDFS、YARN 和 MapReduce 组合完成数据存储、资源管理与并行处理。需要管理集群资源或安排作业的使用者,可关注 YARN;需要为应用数据提供高吞吐访问的使用者,可使用 HDFS。官网还提到,许多公司和组织将 Hadoop 用于研究和生产环境。
注意事项
3.4.3 版本不包含 hadoop-aws 模块使用的 AWS SDK bundle.jar;如需使用 s3a connector,需要另行下载 AWS SDK,并完成签名检查和 JAR 文件复制。3.4.1 版本说明还指出,AWS SDK 本身大小为 500 MB,项目因此提供了不包含该 SDK 的精简 tar 包;使用 AWS 的用户可以按需显式添加该 JAR。官网正文未提供托管服务价格、免费额度或注册信息。