如何在hadoop中减少从节点的心跳时间

nxagd54h  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(404)

我在做aws电子病历。
我想尽快得到任务节点的信息。但根据hadoop中的默认设置,心跳每10分钟共享一次。
这是mapred default-mapreduce.jobtracker.expire.trackers.interval:600000ms中的默认键值对
我尝试使用-this链接将默认值修改为6000ms
之后,每当我从emr集群终止任何ec2机器时,我都无法看到状态变化那么快
资源管理器rest api-http://master_dns_name:8088/ws/v1/cluster/节点
问题-
运行emr cluster(hadoop cluster)时检查mapreduce.jobtracker.expire.trackers.interval值的命令是什么?
这是我用来改变状态的钥匙吗?如果不是,请提出其他解决方案。
资源管理器ui中节点的停用、停用和丢失状态之间有什么区别?
更新
我试了很多次,但它表现出模棱两可的行为。有时进入退役/退役状态,有时10分钟后直接进入失联状态。
我需要一个快速的状态改变,这样我就可以触发一些事件。
这是我的示例代码-

List<Configuration> configurations = new ArrayList<Configuration>();

        Configuration mapredSiteConfiguration = new Configuration();
        mapredSiteConfiguration.setClassification("mapred-site");
        Map<String, String> mapredSiteConfigurationMapper = new HashMap<String, String>();
        mapredSiteConfigurationMapper.put("mapreduce.jobtracker.expire.trackers.interval", "7000");
        mapredSiteConfiguration.setProperties(mapredSiteConfigurationMapper);

        Configuration hdfsSiteConfiguration = new Configuration();
        hdfsSiteConfiguration.setClassification("hdfs-site");
        Map<String, String> hdfsSiteConfigurationMapper = new HashMap<String, String>();
        hdfsSiteConfigurationMapper.put("dfs.namenode.decommission.interval", "10");
        hdfsSiteConfiguration.setProperties(hdfsSiteConfigurationMapper);

        Configuration yarnSiteConfiguration = new Configuration();
        yarnSiteConfiguration.setClassification("yarn-site");
        Map<String, String> yarnSiteConfigurationMapper = new HashMap<String, String>();
        yarnSiteConfigurationMapper.put("yarn.resourcemanager.nodemanagers.heartbeat-interval-ms", "5000");
        yarnSiteConfiguration.setProperties(yarnSiteConfigurationMapper);

        configurations.add(mapredSiteConfiguration);
        configurations.add(hdfsSiteConfiguration);
        configurations.add(yarnSiteConfiguration);

这是我改为aws emr(内部hadoop)的设置,以减少从运行状态更改为其他状态(decommissioning/decommissioned/lost)之间的时间间隔。

1yjd4xko

1yjd4xko1#

hdfs getconf -confKey mapreduce.jobtracker.expire.trackers.interval 如另一份答复所述: yarn.resourcemanager.nodemanagers.heartbeat-interval-ms 应根据您的网络设置,如果您的网络具有高延迟,则应设置更大的值。
三。当有正在运行的容器时,它处于停用状态,并等待它们完成,以便可以停用这些节点。
当它在这个过程中停留太久的时候,它就迷失了。此状态是在通过设置的超时并且无法完成节点的停用之后达到的。
decommissioned是节点的停用完成时。
参考:调整正在运行的群集的大小
对于yarn nodemanager退役,可以通过设置 yarn.resourcemanager.decommissioning.timeout 内部 /etc/hadoop/conf/yarn-site.xml; 此设置是动态传播的。

piv4azn7

piv4azn72#

您可以使用“hdfs getconf”。请参考这篇文章,从命令行获取Yarn配置
这些链接提供有关节点管理器运行状况检查以及必须检查的属性的信息:
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/clustersetup.html
https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/nodemanager.html
请参阅下面链接中的“yarn.resourcemanager.nodemanagers.heartbeat interval ms”:
https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
您的问题将在以下链接中得到解答:
https://issues.apache.org/jira/browse/yarn-914
请参阅“附件”和“子任务”区域。简单地说,如果当前运行的应用程序主容器和任务容器被正确关闭(和/或在其他不同的节点中重新启动),那么节点管理器被称为已停用(正常),否则它将丢失。
更新:
“dfs.namenode.decommission.interval”用于hdfs数据节点的停用,如果您只关心节点管理器,则无所谓。在例外情况下,数据节点不需要是计算节点。
尝试yarn.nm.liveness-monitor.expiry-interval-ms(默认值600000-这就是为什么您报告状态在10分钟内更改为lost,根据需要将其设置为较小的值)而不是mapreduce.jobtracker.expire.trackers.interval。
您已经将“yarn.resourcemanager.nodemanagers.heartbeat interval ms”设置为5000,也就是说,心跳每5秒会转到资源管理器一次,而默认值是1000。根据需要将其设置为较小的值。

相关问题