Hadoop 启动成功后,会根据不同的运行模式(如 Standalone、Pseudo-Distributed 或 Fully-Distributed)运行一系列进程。以下是 完全分布式模式(Fully-Distributed Mode) 下 Hadoop 的主要进程及其作用:
1. NameNode (NN)
- 作用:HDFS 的主节点,负责管理文件系统的 元数据(如文件目录结构、文件权限、数据块位置等)。
- 关键功能:
- 记录文件与数据块的映射关系。
- 协调客户端对文件的读写请求。
- 管理 DataNode 的心跳和块报告。
- 默认端口:
50070(Web UI),8020(RPC 通信)。
2. DataNode (DN)
- 作用:HDFS 的从节点,负责实际存储数据块(Block)。
- 关键功能:
- 存储文件数据块(默认块大小 128MB)。
- 定期向 NameNode 发送心跳和块报告。
- 执行数据块的读写和复制操作。
- 默认端口:
50075(Web UI)。
3. Secondary NameNode (SNN)
- 作用:辅助 NameNode,不是热备节点,主要用于定期合并
fsimage和edits日志文件,减轻 NameNode 负载。 - 关键功能:
- 定期从 NameNode 下载元数据快照(
fsimage+edits)。 - 合并后生成新的
fsimage并传回 NameNode。
- 定期从 NameNode 下载元数据快照(
- 注意:在 Hadoop 3.x 中逐渐被 Checkpoint Node 或 Backup Node 替代。
4. ResourceManager (RM)
- 作用:YARN 的主节点,负责集群资源的全局管理和任务调度。
- 关键功能:
- 接收客户端提交的作业。
- 分配资源(CPU、内存)给各个 ApplicationMaster。
- 监控 NodeManager 的状态。
- 默认端口:
8088(Web UI)。
5. NodeManager (NM)
- 作用:YARN 的从节点,负责单个节点上的资源管理和任务执行。
- 关键功能:
- 管理本节点的资源(CPU、内存、磁盘)。
- 启动和监控容器(Container),运行 ApplicationMaster 和任务(如 MapTask、ReduceTask)。
- 向 ResourceManager 汇报资源使用情况。
6. JournalNode (JN)
- 作用:在高可用(HA)模式下,用于共享 NameNode 的编辑日志(edits),实现主备 NameNode 的元数据同步。
- 关键功能:
- 存储 NameNode 的
edits日志。 - 确保 Active 和 Standby NameNode 的元数据一致性。
- 存储 NameNode 的
- 默认端口:
8485。
7. Zookeeper (ZK)
- 作用:在 HA 模式下,用于协调 NameNode 的主备选举和故障转移(通过 ZKFC)。
- 关键功能:
- 维护集群状态(如 Active/Standby NameNode)。
- 提供分布式锁服务。
8. ZKFC (ZooKeeper Failover Controller)
- 作用:监控 NameNode 的健康状态,并通过 Zookeeper 触发主备切换。
9. ApplicationMaster (AM)
- 作用:每个应用程序(如 MapReduce 作业)的主进程,负责向 ResourceManager 申请资源,并协调任务的执行。
- 关键功能:
- 管理单个作业的生命周期(如 MapReduce、Spark 作业)。
- 与 NodeManager 通信启动/监控任务。
10. JobHistoryServer
- 作用:存储和展示已完成的 MapReduce 作业的历史日志。
- 默认端口:
19888。
进程总结表
| 进程 | 所属组件 | 作用 | 关键端口 |
|---|---|---|---|
| NameNode | HDFS | 管理元数据 | 50070, 8020 |
| DataNode | HDFS | 存储数据块 | 50075 |
| ResourceManager | YARN | 全局资源管理 | 8088 |
| NodeManager | YARN | 单节点资源管理 | 8042 |
| JournalNode | HDFS HA | 共享 edits 日志 | 8485 |
| ZKFC | HDFS HA | NameNode 故障转移 | - |
补充说明
- 伪分布式模式:所有进程运行在同一台机器上(NameNode + DataNode + ResourceManager + NodeManager)。
- 高可用(HA)模式:需要额外启动 JournalNode 和 Zookeeper。
- Hadoop 3.x:可能引入新进程(如 Router 用于联邦 HDFS)。
通过 jps 命令可以查看当前节点运行的 Hadoop 进程。理解这些进程的作用有助于排查集群问题或优化性能。

1万+

被折叠的 条评论
为什么被折叠?



