Hadoop是Apache开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成的集群上运行应用程序,为应用程序提供了一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。Hadoop由9个子项目组成,组织结构如表1所示。
表1 Hadoop组织结构表
Pig | Chukwa | Hive | HBase | ||
MapReduce | HDFS | ZooKeeper | |||
Common | Avro |
Hadoop中9个子项目的描述如表2所示。
表2 Hadoop项目描述表
子项目名称 | 用途 |
Common | Hadoop项目的核心,是体系最底层的一个模块。为Hadoop各子项目提供各种工具,如:配置文件和日志操作等。 |
Avro | Hadoop的RPC(远程过程调用)项目,类似Google的protobuf和Facebook的thrift。 |
Chukwa | 管理大型分布式系统的数据采集系统,由yahoo贡献。 |
HBase | 支持结构化数据存储的分布式数据库,是Bigtable的开源实现。 |
HDFS | 分布式文件系统,是分布式计算存储基础。HDFS具有高容错性,可以部署在廉价的硬件设备上,适合有大数据集成的应用,并且提供了对数据读写的高吞吐率。 |
Hive | 提供数据摘要和查询功能的数据仓库。Hive提供了一套以SQL为基础的查询语言。 |
MapReduce | 大型数据的分布式处理并行计算编程模型,是Google的MapReduce的开源实现。 |
Pig | Pig是SQL-like语言,是在MapReduce上构建的一种高级查询语言,是Sawzall的开源实现,由yahoo贡献 |
ZooKeeper | 针对大型分布式系统的可靠协调系统,用于解决分布式系统中一致性问题,是Chubby的开源实现。ZooKeeper提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 |