3.1.1 Hadoop生态系统架构

Hadoop的生态系统主要组成架构,如图3-1所示。

随着Hadoop生态系统的成长,出现了越来越多新的项目,这些项目有的需要依赖于Hadoop,有的可以独立运行,有的对Hadoop提供了很好的补充。

图3-1 Hadoop生态系统主要组成架构

下面对Hadoop生态系统架构中的关键技术进行简要介绍,本书后续章节将对每一项技术进行详细讲解。

Hadoop的核心主要包含以下模块:

· HDFS(Hadoop Distributed File System):可提供高吞吐量访问的分布式文件系统。

· YARN:用于任务调度和集群资源管理的框架。

· MapReduce:基于YARN之上,用于大型数据集并行处理的系统。

其他Hadoop相关的系统:

· ZooKeeper:一个高性能的分布式应用程序的协调服务。

· Flume:一个日志收集系统,用于将大量日志数据从许多不同的源进行收集、聚合,最终移动到一个集中的数据中心进行存储。

· Sqoop:用于在关系数据库与Hadoop平台之间进行数据导入和导出的工具。

· Kafka:一个高吞吐量的分布式发布订阅消息系统。

· HBase:一个可伸缩的分布式数据库,支持大型表的结构化数据存储。底层使用HDFS存储数据,同时依赖ZooKeeper进行集群协调服务。

· Elasticsearch:一个基于Lucene的分布式全文搜索引擎。

· Hive:基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务运行。

· Storm:一个分布式的实时计算系统。

· Spark:一种快速通用的Hadoop数据计算引擎。Spark提供了一个简单而有表现力的编程模型,该模型支持广泛的应用程序,包括ETL、机器学习、流处理和图形计算。