可以用这个开源组件来做yarn上job运行情况的监控。
pip install yarn-api-client 可以在系统中安装该python组件。该组件的git地址为 https://github.com/toidi/hadoop-yarn-api-python-client
1)使用接口的情况如下:
1.job_history:
historys=HistoryServer('com.hunantv.datanode2', port=19888)
hs=historys.jobs().data 调出所有已经跑完的job的信息,hs['jobs']['job’]
hs.job_counters('job_1437445095118_246443’).data 统计job的输入输出大小等信息
hs.job_tasks('job_1437445095118_246443').data 具体一个job里面tasks(map/reduce)信息
2.resource manager
rm=ResourceManager(address='com.hunantv.datanode31', port=8088)
rm.cluster_applications().data 提交到rm的所有apps的信息
rm.cluster_application('application_1437445095118_265798').data 提交到rm的具体application的信息
{u'app': {u'allocatedMB': 0,
u'allocatedVCores': 0,
u'amContainerLogs': u'http://com.hunantv.datanode40:8042/node/containerlogs/container_1437445095118_265798_01_000001/root',
u'amHostHttpAddress': u'com.hunantv.datanode40:8042',
u'applicationTags': u'',
u'applicationType': u'MAPREDUCE',
u'clusterId': 1437445095118,
u'diagnostics': u'',
u'elapsedTime': 29699,
u'finalStatus': u'SUCCEEDED',
u'finishedTime': 1446802078848,
u'id': u'application_1437445095118_265798',
u'name': u'select\n b.year as year,\n b.mo...b.cityid(Stage-3)',
u'progress': 100.0,
u'queue': u'root.root',
u'runningContainers': 0,
u'startedTime': 1446802049149,
u'state': u'FINISHED',
u'trackingUI': u'History',
u'trackingUrl': u'http://com.hunantv.datanode31:8088/proxy/application_1437445095118_265798/jobhistory/job/job_1437445095118_265798',
u'user': u'root'}}
3.node manager
nm=NodeManager(address='com.hunantv.datanode35', port=8042)
nm.node_containers().data 获取跑在该节点的containers信息
nm.node_applications().data 获取跑在该节点的apps信息
2)具体使用代码:
from yarn_api_client import ApplicationMaster, HistoryServer, NodeManager, ResourceManager

本文介绍了如何使用Python的yarn-api-client库来监控YARN上job的运行状态。通过pip安装该组件后,可以方便地获取YARN的相关信息。
1288

被折叠的 条评论
为什么被折叠?



