def dbappproxy(): appid = getRequestParam("appid", "") url = "http://%s:%s/proxy/%s/ws/v1/mapreduce/jobs/" % (config.rmhost, config.rmport, appid) jobInfo = util.getHttpJson(url) keyList = [ "mapsTotal", "mapsPending", "mapsRunning", "failedMapAttempts", "killedMapAttempts", "successfulMapAttempts", "reducesTotal", "reducesPending", "reducesRunning", "failedReduceAttempts", "killedReduceAttempts", "successfulReduceAttempts", ] if jobInfo: result = {} temp = jobInfo["jobs"]["job"][0] result["amTime"] = temp["elapsedTime"] for key in keyList: result[key] = temp[key] return json.dumps(result) else: result = {} result["amTime"] = "x" for key in keyList: result[key] = "x" return json.dumps(result)
def dbappwaitting(): url = ("http://%s:%s/ws/v1/cluster/apps?state=ACCEPTED" % (config.rmhost, config.rmport)) waittingApp = util.getHttpJson(url) retult = { "waitting": waittingApp["apps"], "rmhost": config.rmhost, "rmport": config.rmport } return json.dumps(retult)
def getJobAllTask(self,jobid): url = ("http://%s:%s/ws/v1/history/mapreduce/jobs/%s/tasks" % (config.hshost,config.hsport,jobid)) tasks = util.getHttpJson(url) if not tasks or not tasks.has_key('tasks') or not tasks['tasks'].has_key('task') : return for task in tasks['tasks']['task']: taskId = task['id'] url = ("http://%s:%s/ws/v1/history/mapreduce/jobs/%s/tasks/%s/attempts" % (config.hshost,config.hsport,jobid,taskId)) attempts = util.getHttpJson(url) if not attempts or not attempts.has_key('taskAttempts') \ or not attempts['taskAttempts'].has_key('taskAttempt') : return for attempt in attempts['taskAttempts']['taskAttempt']: attemptId = attempt['id'] url = ("http://%s:%s/ws/v1/history/mapreduce/jobs/%s/tasks/%s/attempts/%s/counters" % (config.hshost,config.hsport,jobid,taskId,attemptId)) attemptCounter = util.getHttpJson(url) self.updateWithAttempt(attempt,attemptCounter)
def dbapprunning(): url = "http://%s:%s/ws/v1/cluster/apps?state=RUNNING" % (config.rmhost, config.rmport) runningApp = util.getHttpJson(url) queues = {} for app in runningApp["apps"]["app"]: queue = app["queue"] appid = app["id"] if not queues.has_key(queue): queues[queue] = {} queues[queue][appid] = app retult = {"queues": queues, "rmhost": config.rmhost, "rmport": config.rmport} return json.dumps(retult)
def getJobAllTask(self, jobid): url = ("http://%s:%s/ws/v1/history/mapreduce/jobs/%s/tasks" % (config.hshost, config.hsport, jobid)) tasks = util.getHttpJson(url) if not tasks or not tasks.has_key( 'tasks') or not tasks['tasks'].has_key('task'): return for task in tasks['tasks']['task']: taskId = task['id'] url = ( "http://%s:%s/ws/v1/history/mapreduce/jobs/%s/tasks/%s/attempts" % (config.hshost, config.hsport, jobid, taskId)) attempts = util.getHttpJson(url) if not attempts or not attempts.has_key('taskAttempts') \ or not attempts['taskAttempts'].has_key('taskAttempt') : return for attempt in attempts['taskAttempts']['taskAttempt']: attemptId = attempt['id'] url = ( "http://%s:%s/ws/v1/history/mapreduce/jobs/%s/tasks/%s/attempts/%s/counters" % (config.hshost, config.hsport, jobid, taskId, attemptId)) attemptCounter = util.getHttpJson(url) self.updateWithAttempt(attempt, attemptCounter)
def dbapprunning(): url = ("http://%s:%s/ws/v1/cluster/apps?state=RUNNING" % (config.rmhost, config.rmport)) runningApp = util.getHttpJson(url) queues = {} for app in runningApp["apps"]["app"]: queue = app["queue"] appid = app['id'] if not queues.has_key(queue): queues[queue] = {} queues[queue][appid] = app retult = { "queues": queues, "rmhost": config.rmhost, "rmport": config.rmport } return json.dumps(retult)
def dbappproxy(): appid = getRequestParam("appid", "") url = ("http://%s:%s/proxy/%s/ws/v1/mapreduce/jobs/" % (config.rmhost, config.rmport, appid)) jobInfo = util.getHttpJson(url) keyList = [ "mapsTotal", "mapsPending", "mapsRunning", "failedMapAttempts", "killedMapAttempts", "successfulMapAttempts", "reducesTotal", "reducesPending", "reducesRunning", "failedReduceAttempts", "killedReduceAttempts", "successfulReduceAttempts" ] if jobInfo: result = {} temp = jobInfo["jobs"]["job"][0] result["amTime"] = temp["elapsedTime"] for key in keyList: result[key] = temp[key] return json.dumps(result) else: result = {} result["amTime"] = "x" for key in keyList: result[key] = "x" return json.dumps(result)
def getAppList(self): url = ( "http://%s:%s/ws/v1/cluster/apps?finishedTimeBegin=%d&finishedTimeEnd=%d" % (config.rmhost, config.rmport, (self.recordTime * 1000), (self.recordTime + self.interval) * 1000)) return util.getHttpJson(url)
def getMetrics(self): url = ("http://%s:%s/ws/v1/cluster/metrics" % (config.rmhost, config.rmport)) return util.getHttpJson(url)
def getJobHistory(self, jobid): url = ("http://%s:%s/ws/v1/history/mapreduce/jobs/%s" % (config.hshost, config.hsport, jobid)) return util.getHttpJson(url)
def getAppList(self): url = ("http://%s:%s/ws/v1/cluster/apps?finishedTimeBegin=%d&finishedTimeEnd=%d" % (config.rmhost,config.rmport,(self.recordTime*1000),(self.recordTime+self.interval)*1000)) return util.getHttpJson(url)
def getMetrics(self): url = ("http://%s:%s/ws/v1/cluster/metrics" % (config.rmhost,config.rmport)) return util.getHttpJson(url)
def getJobHistory(self,jobid): url = ("http://%s:%s/ws/v1/history/mapreduce/jobs/%s" % (config.hshost,config.hsport,jobid)) return util.getHttpJson(url)
def appRunningState(): url = ("http://%s:%s/ws/v1/cluster/metrics" % (config.rmhost, config.rmport)) metrics = util.getHttpJson(url) return json.dumps(metrics)
def appRunningState(): url = "http://%s:%s/ws/v1/cluster/metrics" % (config.rmhost, config.rmport) metrics = util.getHttpJson(url) return json.dumps(metrics)
def dbappwaitting(): url = "http://%s:%s/ws/v1/cluster/apps?state=ACCEPTED" % (config.rmhost, config.rmport) waittingApp = util.getHttpJson(url) retult = {"waitting": waittingApp["apps"], "rmhost": config.rmhost, "rmport": config.rmport} return json.dumps(retult)