Esempio n. 1
0
class TraceBuild:
	json_path = ""
  

	def __init__(self,json_path_t):
		self.json_path = json_path_t
		self.job = Job()

	def load(self):
		try:
			self.json_file=open(self.json_path,'r')
		except IOError as error:
			print ("file open error:"+str(error))
			return 0
		return 1
	
	def initial_jobs(self):
		while True:
			json_str=self.json_file.readline()
			if not json_str:
				break
			elif not json_str.startswith("{"):
				continue
			else:
				json_dict = json.loads(json_str)
				event = Event(json_dict)
				event.process_event(self.job)

		return 1


	#def get_jobbyid(self,jobid):
		
    #def get_jobbyindex(self,index):
	def reduce_startTime(self):
		times = []
		reduces = self.job.get_reduces()
		for reducetask in reduces:
			times.append(reducetask.reduceattempts[0].get_startTime().__strtoint__())
		return times

	def reduce_finishTime(self):
		times = []
		reduces = self.job.get_reduces()
		for reducetask in reduces:
			times.append(reducetask.get_finishTime().__strtoint__())
		return times


	def map_startTime(self):
		times = []
		maps = self.job.get_maps()
		for maptask in maps:
			#times.append(maptask.mapattempts[0].get_startTime().__strtoint__())
			times.append(maptask.get_startTime().__strtoint__())
		return times

	def map_finishTime(self):
		times = []
		maps = self.job.get_maps()
		for maptask in maps:
			times.append(maptask.get_finishTime().__strtoint__())
		return times

	def reduce_shufflefinishTime(self):
		times = []
		reduces = self.job.get_reduces()
		for reducetask in reduces:
			times.append(reducetask.get_shuffleFinishTime().__strtoint__())
		return times


	def map_countByKey(self,key):
		countValues = []
		maps = self.job.get_maps()
		for maptask in maps:
			countValues.append(maptask.get_counterValue(key))	
		return countValues		

	def map_time(self):

		times=[]
		maps = self.job.get_maps()
		for maptask in maps:
			times.append(maptask.get_spendTime())
		return times

	def reduce_time(self):
		times=[]
		reduces = self.job.get_reduces()
		for reducetask in reduces:
			times.append(reducetask.get_spendTime())
		return times

	def job_runTinme(self):
		return self.job.get_runTime()

	def get_mapAttemptLocality(self):
		locality = []
		maps = self.job.get_maps()
		for maptask in maps:
			locality.append(maptask.get_successAttempt().get_locality())
		return locality

	def get_mapAttemptHost(self):
		host = []
		for maptask in self.job.get_maps():
			host.append(maptask.get_successAttempt().get_hostname())
		return host

	def get_reduceAttemptHost(self):
		host = []
		for reducetask in self.job.get_reduces():
			host.append(reducetask.get_successAttempt().get_hostname())
		return host

	def get_maps(self):
		return self.job.get_maps()

	def get_reduces(self):
		return self.job.get_reduces()

	def normalrize(self,dataSet):
		normalSet = []
		tSet = []
		for i in range(0,len(dataSet)):
			tSet.append(dataSet[i])

		for i in range(0,len(dataSet)):
			normal = (float)(tSet[i])/(float)(sum(tSet))
			normalSet.append(normal)
		return normalSet