我有一些关于提交给HDFS的作业和Hadoop中的YARN架构的问题:
因此,在Hadoop生态系统中,每个群集都有一个NameNode,它可以包含存储数据的任意数量的数据节点。当您向Hadoop提交作业时,NameNode上的作业跟踪器将选择每个作业并将其分配给数据节点上存在该文件的任务跟踪器。
所以我的问题是YARN的组件如何在HDFS中协同工作:?
所以YARN由NodeManager和资源管理器组成。在这两个组件中:NodeManager是否在每个DataNode上运行,并且ResourceManager在每个群集的每个NameNode上运行?因此,当任务跟踪器(在每个DataNode中)从作业跟踪器(在NameNode中)分配任务时,特定数据节点中的NodeManager将创建一个容器,该容器将从NameNode中的ResourceManager请求资源。因此,当数据节点中的任务跟踪器从NameNode中的作业跟踪器获取作业时,此资源管理器和节点管理器才会发挥作用,其中NodeManager将向ResourceManager请求资源以执行作业。这是对的吗?
答案 0 :(得分:3)
你是部分正确的。为了避免Jobtracker做调度和监控的负担,YARN被引入了画面。因此,对于YARN,您没有任何作业跟踪器或任务跟踪器。 Job tracker完成的工作现在由Resource Manager完成,它有两个主要组件Scheduler(为应用程序分配资源)和ApplicationsManager(接受作业提交并在发生任何故障时重新启动ApplicationMaster)。现在每个应用程序都有一个ApplicationMaster,它从调度程序协商容器(运行作业的位置)以运行应用程序。
Nodemanager在每个从节点/数据节点上运行。可以/可能不安装资源管理器,其中存在namenode。对于大型集群,我们通常需要将主服务器分开,以便负载不会转到单个机器上。