yaokai1117tiny up3e609ba11 years agoHistory
131 lines · 4.2 KB · Brainfuck
RawDownload
##########################################	The implemention of the MRUtil module.##	@author Kai Yao(yaokai)######################################### implement MRUtil; include "mrutil.m";include "ioutil.m";include "tables.m";include "sys.m"; sys : Sys; init(){	sys = load Sys Sys->PATH;}  MapperTask.toString(mp : self ref MapperTask) : string{	ret := sys->sprint("id: %d, jobId: %d, status: %d, reducerAmount: %d, attempt: %d\n", mp.id, mp.jobId, mp.status, mp.reducerAmount, mp.attemptCount);	return ret;} MapperTask.eq(a, b : ref MapperTask) : int{	return a.id == b.id;} ReducerTask.toString(rd : self ref ReducerTask) : string{	ret := sys->sprint("id: %d, jobId: %d, status: %d, mapperAmount: %d, attempt: %d\n", rd.id, rd.jobId, rd.status, rd.mapperAmount, rd.attemptCount);	return ret;} ReducerTask.eq(a, b : ref ReducerTask) : int{	return a.id == b.id;} TaskTrackerInfo.toString(tt : self ref TaskTrackerInfo) : string{	ret := sys->sprint("addr: %s, port: %d, mapperTaskNum: %d, reducerTaskNum: %d, isWorking: %d", tt.addr, tt.port, tt.mapperTaskNum, tt.reducerTaskNum, tt.isWorking);	return ret;} mapper2msg(mapper : ref MapperTask) : string{	msg := "mapper@" + string mapper.id + "@" + string mapper.jobId +			"@" + string mapper.status + "@" + string mapper.attemptCount + 			"@" + mapper.taskTrackerAddr + "@" + string mapper.taskTrackerPort + 			"@" + mapper.mrClassName + "@" + string mapper.reducerAmount + 			"@" + string mapper.combinable + 			"@" + mapper.inputFileBlock.fileName + "@" + string mapper.inputFileBlock.offset + "@" + string mapper.inputFileBlock.size;	return msg;} reducer2msg(reducer : ref ReducerTask) : string{	msg := "reducer@" + string reducer.id + "@" + string reducer.jobId + 			 "@" + string reducer.status + "@" + string reducer.attemptCount + 			 "@" + reducer.taskTrackerAddr + "@" + string reducer.taskTrackerPort + 			 "@" + reducer.mrClassName + "@" + string reducer.mapperAmount + "@" +  string reducer.partitionIndex + 			 "@" + reducer.outputFile + "@" + string reducer.outputRep + "@" + string reducer.outputSize;	return msg;} tracker2msg(tracker : ref TaskTrackerInfo) : string{	msg := "tracker@" + tracker.addr + "@" + string tracker.port + 			 "@" + string tracker.mapperTaskNum + "@" + string tracker.reducerTaskNum +			 "@" + string tracker.isWorking + "@" + string tracker.timeStamp;	return msg;}  msg2mapper(msg : list of string) : ref MapperTask{	msg = tl msg;	id := int (hd msg); msg = tl msg;	jobId := int (hd msg); msg = tl msg;	status := int (hd msg); msg = tl msg;	attemptCount := int (hd msg); msg = tl msg;	taskTrackerAddr := (hd msg); msg = tl msg;	taskTrackerPort := int (hd msg); msg = tl msg;	mrClassName := (hd msg); msg = tl msg;	reducerAmount := int (hd msg); msg = tl msg;	combinable := int (hd msg); msg = tl msg;	fileName := (hd msg); msg = tl msg;	offset := big (hd msg); msg = tl msg;	size := int (hd msg); msg = tl msg;	fileBlock := ref IOUtil->FileBlock(fileName, offset, size);		return ref MapperTask(id, jobId, status, attemptCount, taskTrackerAddr, taskTrackerPort, mrClassName, reducerAmount, combinable, fileBlock);} msg2reducer(msg : list of string) : ref ReducerTask{	msg = tl msg;	id := int (hd msg); msg = tl msg;	jobId := int (hd msg); msg = tl msg;	status := int (hd msg); msg = tl msg;	attemptCount := int (hd msg); msg = tl msg;	taskTrackerAddr := (hd msg); msg = tl msg;	taskTrackerPort := int (hd msg); msg = tl msg;	mrClassName := (hd msg); msg = tl msg;	mapperAmount := int	(hd msg); msg = tl msg;	partitionIndex := int (hd msg); msg = tl msg;	outputFile := (hd msg); msg = tl msg;	outputRep := int (hd msg); msg = tl msg;	outputSize := int (hd msg); msg = tl msg;	return ref ReducerTask(id, jobId, status, attemptCount, taskTrackerAddr, taskTrackerPort, mrClassName, mapperAmount, partitionIndex, outputFile, outputRep, outputSize);	} msg2tracker(msg : list of string) : ref TaskTrackerInfo{	msg = tl msg;	addr := hd msg; msg = tl msg;	port := int (hd msg); msg = tl msg;	mapperTaskNum := int (hd msg); msg = tl msg;	reducerTaskNum := int (hd msg); msg = tl msg;	isWorking := int (hd msg); msg = tl msg;	timeStamp := int (hd msg);	return ref TaskTrackerInfo(addr, port, mapperTaskNum, reducerTaskNum, isWorking, timeStamp);}