可以通过hadoop中的命令行设置nodemanager参数的心跳吗?
怎么样?
另外可以修改这样的参数而不重启群集吗?
我感兴趣的参数是yarn-default.xml
下的yarn.resourcemanager.nodemanagers.heartbeat-interval-ms
答案 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);
上面调用中的参数nextHeartBeatInterval
以serviceInit()
的{{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()