以下是 Hadoop 和 Spark 生态系统的核心组件及其功能:
Hadoop 生态核心组件
- HDFS(Hadoop 分布式文件系统)
-
命令/工具: hdfs 命令(如 hdfs dfs -put 等)。
-
作用:分布式存储海量数据,提供高吞吐量、容错性强的存储方案,适合大数据批处理。
- YARN(资源调度框架)
-
命令/工具: yarn 命令(如 yarn application -list 等)。
-
作用:管理集群资源(CPU/内存),调度分布式应用程序(如 MapReduce、Spark),实现计算资源的动态分配。
- MapReduce
-
命令/工具: hadoop jar 运行 MapReduce 作业。
-
作用:基于 HDFS 的分布式计算模型,将任务拆分为 Map 和 Reduce 阶段,处理大规模数据的批量计算。
Spark 生态核心组件
- Spark Core
-
命令/工具: spark-submit 提交作业, spark-shell 交互式环境。
-
作用:提供内存计算框架,支持分布式数据处理(RDD/Dataset/DataFrame),支持多种编程语言(Scala/Java/Python)。
- Spark SQL
-
命令/工具:集成于 Spark Core,通过 SQL 或 DataFrame 操作数据。
-
作用:处理结构化数据,支持与 Hive 元数据集成,实现 SQL 查询和数据分析。
- Spark Streaming
-
命令/工具:基于 Spark Core,编写流式处理程序。
-
作用:实时处理流式数据(如 Kafka、Flume),支持微批处理(Micro-Batch)和持续处理(Continuous Processing)。
- MLlib(机器学习库)
-
命令/工具:通过 Spark Core API 调用算法。
-
作用:提供常用机器学习算法(分类、回归、聚类等),支持分布式训练和模型评估。
- GraphX
-
命令/工具:基于 Spark Core 的图计算 API。
-
作用:处理图结构数据,支持图遍历、社区检测、最短路径等算法。
生态集成组件
-
Hive:基于 Hadoop 的数据仓库,通过 SQL 操作 HDFS 数据,常与 Spark SQL 结合使用。
-
HBase:基于 HDFS 的分布式 NoSQL 数据库,适合海量结构化数据随机访问。
-
Kafka:分布式消息队列,用于 Spark Streaming/Hadoop 生态的数据流转。