Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop没有';不要将一个节点用于作业_Hadoop_Yarn - Fatal编程技术网

Hadoop没有';不要将一个节点用于作业

Hadoop没有';不要将一个节点用于作业,hadoop,yarn,Hadoop,Yarn,我已经建立了一个四节点的纱线集群并开始运行。由于一个较小的问题,我最近不得不格式化namenode 后来,我运行了Hadoop的PI示例,以验证每个节点仍在参与计算,它们都参与了计算。但是,当我现在开始自己的作业时,其中一个节点根本没有被使用 我想这可能是因为这个节点没有任何数据可以处理。因此,我尝试使用平衡器来平衡集群。这不起作用,平衡器告诉我集群是平衡的 我错过了什么 确保您的节点正在加入resourcemanager。查看问题节点上的nodemanager日志,查看是否存在错误。查看res

我已经建立了一个四节点的纱线集群并开始运行。由于一个较小的问题,我最近不得不格式化namenode

后来,我运行了Hadoop的PI示例,以验证每个节点仍在参与计算,它们都参与了计算。但是,当我现在开始自己的作业时,其中一个节点根本没有被使用

我想这可能是因为这个节点没有任何数据可以处理。因此,我尝试使用平衡器来平衡集群。这不起作用,平衡器告诉我集群是平衡的

我错过了什么

  • 确保您的节点正在加入resourcemanager。查看问题节点上的nodemanager日志,查看是否存在错误。查看resourcemanager Web UI(默认情况下为:8088),确保该节点已在其中列出

  • 确保节点为池带来了足够的资源,以便能够运行作业。在节点上检查并输入warn-site.xml。内存应大于容器请求的最小内存(请参阅)


  • 在处理过程中,您的应用程序管理员将与NodeManager协商容器,而NodeManager反过来将尝试获取最近的datanode资源。由于复制系数为3,HDFS将尝试在单个datanode上放置1个完整副本,并将其余副本分发到所有datanode

    1) 将复制因子更改为1(因为您只是尝试进行基准测试,所以减少复制应该不是一个大问题)

    2) 确保您的客户端(从中发出-copyFromLocal命令的计算机)上没有运行datanode。否则,HDFS将倾向于将大部分数据放在该节点中,因为这样可以减少延迟

    3) 使用
    dfs.blocksize
    属性控制文件分发


    4) 使用
    hdfs dfsadmin-report

    检查数据节点的状态您的hdfs复制系数是多少?为什么您认为集群中的所有节点都必须用于作业;因为这将加快CPU非常繁重的计算?那么,如果集群大小为4,复制因子为3,第四个节点如何拥有输入的数据块(用于运行任务)?因为HDFS不需要将所有复制放在同一个节点组合上,或者我错了吗?I节点A、B、C上的图像文件1;节点B、C、D上的文件2。。。然后每个节点都会有一些工作要做。是节点已加入群集,并在rm web ui中列出。2.节点配备6个内核和12gb RAM,应该足够了;特别是因为它在集群重置之前工作得非常好,请确保节点使用可用的RAM。配置可能会覆盖它。另外,确保该节点也是HDFS集群的一部分,datanode已启动、运行并已连接(按namenode列出)。如果不在namenode列表中,则不应阻止其运行作业,但不太可能被拾取。