Hadoop中jps到的各个进程功能解析

启动hadoop集群后,可以通过jps命令显示当前所有java进程pid的命令,也就显示了所有与Hadoop相关的进程。

主节点:

5664 SecondaryNameNode
20898 Jps
5821 ResourceManager
5439 NameNode

从节点:

21557 NodeManager
21432 DataNode
24765 Jps

下面对这5个hadoop相关进行的功能做一下记录。

  • NameNode:
  1. 维护文件系统树及整棵树内所有的文件和目录。这些信息永久保存在本地磁盘的两个文件中:命名空间镜像文件、编辑日志文件
  2. 记录每个文件中各个块所在的数据节点信息,这些信息在内存中保存,每次启动系统时重建这些信息
  3. 负责响应客户端的   数据块位置请求  。也就是客户端想存数据,应该往哪些节点的哪些块存;客户端想取数据,应该到哪些节点取
  4. 接受记录在数据存取过程中,datanode节点报告过来的故障、损坏信息
  • SecondaryNameNode:实现namenode容错的一种机制。定期合并编辑日志与命名空间镜像,当namenode挂掉时,可通过一定步骤进行上顶。
  • DataNode:
  1. 根据需要存取并检索数据块
  2. 定期向namenode发送其存储的数据块列表
  • ResourceManager:负责Job的调度:将一个任务与一个NodeManager相匹配。也就是将一个MapReduce之类的任务分配给一个从节点的NodeManager来执行。
  • NodeManager:运行ResourceManager分配的任务,同时将任务进度向application master报告

下面来讲一下MapReduce 1 和MapReduce 2 的比较

MapReduce 1 中有两类守护进程控制着作业执行过程:一个jobtracker和多个tasktracker。
jobtracker 通过调度 tasktracker上运行的任务来协调所有运行在系统上的作业。
tasktracker在运行任务的同时将运行进度报告发送给jobtracker,jobtracker由此记录每项作业任务的整体进度情况。如果其中一个任务失败,jobtracker 可以在另一个 tasktracker 节点上重新调度该任务。

MapReduce 2 中引入了YARN机制,来减轻 jobtracker 的重担。
MapReduce 1 中jobtracker同时负责作业调度(就是把一个作业分配给一个tasktracker)和任务进度监督(跟踪任务,重启失败任务;记录任务流:维护计数器的计数),但在MapReduce 2中,这两块任务,分别由:ResourceManager和application master (每个作业都被分配一个application master,用来监督该作业)来承担。而MapReduce 1 中的  tasktracker 角色由MapReduce 2 中的NodeManager来充当。

MapReduce 1 和 MapReduce 2 的比较
MapReduce 1 MapReduce 2 (YARN)
Jobtracker ResourceManager、application master
Tasktracker NodeManager
Slot Container

猜你喜欢

转载自blog.csdn.net/Saltwind/article/details/82969255