通过yarn timeline server api查询tez任务的运行数据

这里面最坑爹的就是tez记录在timelineserver中的entity_type值:TEZ_DAG_ID
timelineserver并没有接口查询所有的entity_type
这个原因主要是因为timelineserver使用了levelDB作为序列化存储:https://zh.wikipedia.org/wiki/LevelDB

另外参考:
timelineserver的api文档:http://han-zw.iteye.com/blog/2332924

import json
import requests

parameter = {'limit': '11',
             '_': '1533712088094'
             }
ambari_user = 'admin'
ambari_pass = 'admin'
response = requests.get('http://{yarn-timelineserver-host}:8188/ws/v1/timeline/TEZ_DAG_ID', parameter)

json_data = response.json()
entities_ = json_data['entities']

entity = entities_[0]
otherinfo_ = entity['otherinfo']
res = {

    'domain_':entity['domain'],
    'dag_id':entity['entity'],

    'app_id':otherinfo_['applicationId'],
    'description_': otherinfo_['dagPlan']['dagContext']['description'],
    'user_':otherinfo_['user'],
    'time_taken_': otherinfo_['timeTaken'],
    'start_time_': otherinfo_['startTime'],
    'end_time_': otherinfo_['endTime'],
    'queue_name_': otherinfo_['queueName'],

}
for k, v in res.iteritems():
    print(k +'|' + str(v))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容