美文网首页运维案例
如何监控资源池使用情况

如何监控资源池使用情况

作者: 爱拼才会赢Jack | 来源:发表于2019-05-06 21:46 被阅读0次

    因为Yarn资源池队列满了无法提前干预,所以基于CDH5.7版本开发python脚本,大部分原因可能都是个别MapReduce任务占用大部分资源。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # author: chentujin
    # funaction: get hadoop YARN ResourceManager App Running Status
    import sys, json, os
    import requests
    import time, datetime
    
    #yarn app status api interface
    def get_yarn_status():
        try:
            url = "http://172.18.18.100:8088/ws/v1/cluster/scheduler"
            header = {"Content-Type": "application/json"}
            request = requests.get(url, headers=header)
            if request.status_code == 200:
                obj = json.loads(request.text)
                return obj
            else:
                print(request.status_code)
                return 'err'
        except Exception as err:
            print(err)
            return 'err'
    
    if __name__ == '__main__':
        ret = get_yarn_status()
        tmp = time.time()
        log_time = time.strftime('%Y-%m-%d %H:%M', time.localtime(tmp))
        if len(ret) > 0 and ret != 'err':
            print("check ok.")
            result = ret['scheduler']['schedulerInfo']['rootQueue']['childQueues']
            for n in result:
                queue_name = n['queueName'].split('.')[1]
                used_memory = n['usedResources']['memory']
                used_vcores = n['usedResources']['vCores']
                max_memory = n['maxResources']['memory']
                max_vcores = n['maxResources']['vCores']
                if max_vcores == used_vcores or max_memory == used_memory:
                    print("ResourcePoll Full: queue %s cpu %s memory %s" %(queue_name,max_vcores,max_memory))
    

    相关文章

      网友评论

        本文标题:如何监控资源池使用情况

        本文链接:https://www.haomeiwen.com/subject/vzjjoqtx.html