在hadoop中通过命令行设置心跳

时间:2016-01-11 11:16:09

标签: hadoop

可以通过hadoop中的命令行设置nodemanager参数的心跳吗?

怎么样?

另外可以修改这样的参数而不重启群集吗?

我感兴趣的参数是yarn-default.xml

下的yarn.resourcemanager.nodemanagers.heartbeat-interval-ms

1 个答案:

答案 0 :(得分:1)

您无法使用命令行设置此参数yarn.resourcemanager.nodemanagers.heartbeat-interval-ms(表示The heart-beat interval in milliseconds for every NodeManager in the cluster.)。

您可以在yarn-site.xml中更改此参数,然后需要重新启动服务。

原因是,在Resource Tracker Service中启动Resource Manager时,此参数会被读取一次。心跳间隔将返回Node Manager,作为NodeHeartbeatResponse的一部分。

// Heartbeat response
NodeHeartbeatResponse nodeHeartBeatResponse = YarnServerBuilderUtils
    .newNodeHeartbeatResponse(lastNodeHeartbeatResponse.
        getResponseId() + 1, NodeAction.NORMAL, null, null, null, null,
        nextHeartBeatInterval);

上面调用中的参数nextHeartBeatIntervalserviceInit()的{​​{1}}方式读取:

Resource Tracker Service

此外,nextHeartBeatInterval = conf.getLong(YarnConfiguration.RM_NM_HEARTBEAT_INTERVAL_MS, YarnConfiguration.DEFAULT_RM_NM_HEARTBEAT_INTERVAL_MS); if (nextHeartBeatInterval <= 0) { throw new YarnRuntimeException("Invalid Configuration. " + YarnConfiguration.RM_NM_HEARTBEAT_INTERVAL_MS + " should be larger than 0."); } (默认yarn.resourcemanager.nodemanagers.heartbeat-interval-ms)的值应小于1000的值(默认yarn.nm.liveness-monitor.expiry-interval-ms)。 600000表示yarn.nm.liveness-monitor.expiry-interval-ms

对此进行检查是在资源管理器的How long to wait until a node manager is considered dead.方法中:

validateConfigs()