我有一对夫妇的关于作业提交到HDFS和Hadoop的纱线结构问题:纱和Hadoop
所以在Hadoop的生态系统,你必须为每个集群一个NameNode的,可以包含任意数量的存储数据的节点你的数据。将作业提交给Hadoop时,NameNode上的作业跟踪器将选择每个作业并将其分配给数据节点上存在该文件的任务跟踪器。
所以我的问题是YARN的组件如何在HDFS中一起工作:?
所以YARN由NodeManager和资源管理器组成。在这两个组件之外:NodeManager是否在每个DataNode上运行,并且ResourceManager在每个集群的每个NameNode上运行?因此,当任务跟踪器(在每个DataNode中)从作业跟踪器(在NameNode中)分配任务时,特定数据节点中的NodeManager将创建一个容器,该容器将从NameNode中的ResourceManager请求资源。因此,只有当数据节点中的任务跟踪器从NameNode中的作业跟踪器获取作业时,此资源管理器和节点管理器才会发挥作用,其中NodeManager将向ResourceManager请求要执行作业的资源。它是否正确?
你好Vignesh,这很清楚!因此,如果没有JobTracker或TaskTracker,ResourceManager会处理所有作业“分发”并与每个DataNode上的NodeManager进行通信,以查看它是否可以在该DataNode上分配资源和容器以运行“任务”。那么现在,当客户端向HDFS提交作业时,它首先会与ResourceManager或NameNode进行通信?由于首先需要确定NameNode只能使用其元数据访问HDFS上的文件的位置? – LP45
不需要它,它不需要Namenode帮助。请记住,输入拆分的计算由客户端的Job或JobSubmitter完成,现在拆分被放置在HDFS中(因此RM不需要元数据),这在资源管理器接收到提交应用程序的请求之前完成。 –
这意味着当向HDFS提交作业(从HDFS读取)时,您将与NameNode进行交互以找出您想要保留的文件在哪个DataNode上? – LP45