hadoop中job tracker和task tracker有什么用?namenode 中存在的元数据的内容是什么?hadoop中二级namenode有什么用?
2 回答
注意:请查看检查点节点(辅助名称节点在最新版本中已弃用)。辅助名称节点的目的是执行定期检查点。辅助名称节点定期下载当前名称节点图像并编辑日志文件,将它们加入新图像并将新图像上传回(主要和唯一的)名称节点。请参阅用户指南。
因此,如果名称节点失败并且您可以在同一个物理节点上重新启动它,则无需关闭数据节点,只需重新启动名称节点即可。如果您不能再使用旧节点,则需要将最新图像复制到其他地方。如果可用,可以在故障前曾经是主节点的节点上找到最新的映像;或在辅助名称节点上。后者将是没有后续编辑日志的最新检查点,即最近的名称空间修改可能在那里丢失。在这种情况下,您还需要重新启动整个集群
JobTracker 是用于在 Hadoop 中提交和跟踪 MapReduce 作业的守护程序服务。任何 hadoop 集群上只运行一个 Job Tracker 进程。Job Tracker 在其自己的 JVM 进程上运行。在典型的生产集群中,它在单独的机器上运行。每个从节点都配置有作业跟踪器节点位置。JobTracker 是 Hadoop MapReduce 服务的单点故障。如果它发生故障,所有正在运行的作业都将停止。Hadoop 中的 JobTracker 执行以下操作(来自 Hadoop Wiki:)客户端应用程序将作业提交到 Job Tracker。JobTracker 与 NameNode 对话以确定数据的位置 JobTracker 在数据处或附近找到具有可用插槽的 TaskTracker 节点 JobTracker 将工作提交给选定的 TaskTracker 节点。TaskTracker 节点受到监控。如果他们没有足够频繁地提交心跳信号,则认为他们已经失败,并且工作被安排在不同的 TaskTracker 上。当任务失败时,TaskTracker 会通知 JobTracker。JobTracker 决定接下来要做什么:它可能会在其他地方重新提交作业,它可能会将特定记录标记为要避免的事情,甚至可能会将 TaskTracker 列入不可靠的黑名单。工作完成后,JobTracker 会更新其状态。
客户端应用程序可以轮询 JobTracker 以获取信息。
TaskTracker 是集群中的从属节点守护进程,它接受来自 JobTracker 的任务(Map、Reduce 和 Shuffle 操作)。任何 hadoop 从节点上都只运行一个 Task Tracker 进程。Task Tracker 在其自己的 JVM 进程上运行。每个 TaskTracker 都配置了一组槽,这些槽表示它可以接受的任务数。TaskTracker 启动一个单独的 JVM 进程来做实际的工作(称为 Task Instance),这是为了确保进程失败时不会关闭任务跟踪器。TaskTracker 监视这些任务实例,捕获输出和退出代码。当任务实例完成时,无论成功与否,任务跟踪器都会通知 JobTracker。TaskTracker 还会向 JobTracker 发送心跳消息,通常每隔几分钟,以向 JobTracker 保证它仍然存在。
Namenode 存储整个系统命名空间。上次修改时间、创建时间、文件大小、所有者、权限等信息存储在 Namenode 中。名称节点上的 fsimage 是二进制格式。使用“离线图像查看器”以人类可读的格式转储 fsimage。当文件数量巨大时,单个 Namenode 将无法保留所有元数据。事实上,这也是 HDFS 的局限之一。您可以检查 HDFS Federation,它旨在通过拆分为由不同名称节点服务的不同名称空间来解决此问题。
这是一个快速参考:
- NameNode:管理命名空间、文件系统元数据和访问控制。每个集群中只有一个 NameNode。
- SecondaryNameNode:从 NameNode 下载定期检查点以实现容错。每个集群中只有一个 SecondaryNameNode。
- JobTracker:将任务分发给从节点。每个集群中只有一个 JobTracker。
- DataNode:保存文件系统数据;每个数据节点管理自己的本地连接存储(即节点的硬盘),并在文件系统中存储部分或全部块的副本。每个集群中有一个或多个 DataNode。如果您的集群只有一个 DataNode,则无法复制文件系统数据。
- TaskTracker:执行map和reduce任务的slave。每个集群中有一个或多个 TaskTracker。
(来源)