确定Hadoop集群中的减少插槽数量

问题描述 投票:1回答:1

使用Java API,如何确定当前集群的减少插槽总数? (如果我可以获取插槽数当前正在使用,那将是一个好处。)

我的用例:我有一个Hadoop作业启动另一个Hadoop作业。对于第二项工作,我必须设置减速器的数量。并且这应该基于可用插槽的数量。此外,群集的大小可能会更改。

我正在使用Hadoop 2.7.3。它通常在Amazon EMR上运行,但我更喜欢仅使用Hadoop API的解决方案。

hadoop yarn
1个回答
0
投票

您可以使用Java HTTP客户端通过ResourceManager REST API向YARN请求集群指标。

响应将是一个JSON,其中包含集群上的总内存,已分配内存,预留内存和可用内存以及vcore。

$ curl -G -k https://<resource-manager-host>:8090/ws/v1/cluster/metrics
{"clusterMetrics":      
{"appsSubmitted":999999,"appsCompleted":999999,"appsPending":0,"appsRunning":99,"appsFailed":99,"appsKilled":999,
 "reservedMB":0,"availableMB":99999999,"allocatedMB":9999999,
"reservedVirtualCores":0,"availableVirtualCores":9999,"allocatedVirtualCores":9999,
"containersAllocated":9999,"containersReserved":0,"containersPending":999,
"totalMB":9999999,"totalVirtualCores":99999,
"totalNodes":999,"lostNodes":9,"unhealthyNodes":9,"decommissioningNodes":0,"decommissionedNodes":99,"rebootedNodes":0,"activeNodes":999}}
$

不知道您所说的“插槽”是什么意思,因为在提交MR作业时实际上可以指定减速器的容器尺寸。

© www.soinside.com 2019 - 2024. All rights reserved.