Hadoop的守五个护进程

发表于:2018-1-30 10:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Aloha    来源:Batman's Wayne House

#
hadoop
分享:
  Hadoop 在正常启动后有五个重要的 JVM 进程,分别是NameNode,SecondaryNameNode,DataNode,JobTracker,TaskTracker。这五个进程肩负着 HDFS 在存储和计算上的各项任务。
  NameNode
  NameNode 是集群中的管理节点,只有一个。管理 HDFS 文件系统的命名空间,维护着文件系统树及整棵树内所有文件和目录。也记录着每个文件中各个块所在的数据节点信息。
  SecondaryNameNode
  它不是 NameNode 的冗余守护进程,而是提供周期检查点和清理任务。
  出于对可扩展性和容错性等考虑,我们一般将 SecondaryNameNode 运行在一台非 NameNode 的机器上。
  DataNode
  DataNode 是文件系统中的工作节点,可以有多个。它们根据需要存储并检索数据块(受客户端或者 NameNode 调度),并且定期向 NameNode 发送它们所存储的块的列表。
  应用程序访问文件系统时,先由 NameNode 提供数据块的位置,然后程序去访问对应的 DataNode。
  JobTracker
  每个集群有一个 jobtracker,它负责调度 datanode 上的工作。每个 datanode 有一个 tasktracker,它们执行实际工作。jobtracker 和 tasktracker 采用主-从形式,jobtracker 跨 datanode 分发工作,而 tasktracker 执行任务。jobtracker 还检查请求的工作,如果一个 datanode 由于某种原因失败,jobtracker 会重新调度以前的任务。
  1)应用程序将 Job 交给 JobTracker;
  2)JobTracker 通知 NameNode,让其确定数据块的位置;
  3)JobTracker 确定 TaskTacker 节点,将 work 提交给确定好的 TaskTracker;
  4)TaskTracker 一直被 JobTracker 监控着,如果不按时返回心跳信号或者主动返回失败,则认为是执行失败,将会转向其他 TaskTracker;
  5)当 work 顺利执行完毕,JobTracker 更新状态;
  6)应用程序可以轮询 JobTracker 的状态。
  TaskTracker
  task 指的是Map/Reduce/Shuffle操作。
  每个 TaskTracker 都有一个 slot 集来标记这个 TaskTracker 所能接受的 task 的个数。当 JobTracker 要分配一个 task 时,会在 DataNode 的就近节点中找一个空的slot,把 task 分配给对应的 TaskTracker。当 TaskTracker 要处理一个 task 时,会产生一个新的进程来执行它。在执行期间不断向 JobTracker 发回心跳信号,执行完毕返回结果。

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号