MrJob 多步作业执行时间
MrJob multi step job execution time
显示多步 map reduce 作业执行时间的最佳方式是什么?
我试图在工作的 step1 的 mapper init 中设置一个自变量
def mapper_init_timer(self):
self.start= time.process_time()
但是当我尝试在 Step2 的 reducer_final 中阅读此内容时
def reducer_final_timmer(self):
#self.start is None here
MRJob.set_status(self,"total time")
我不明白为什么在步骤之间丢失了自验证。
如果这是设计使然,那么我们如何计算 MrJob 脚本的执行时间,该脚本在 运行 和 -r hadoop 时也给出正确的结果。
最简单的方法是获取调用 run()
之前和之后的时间并找出它们的差异,
from datetime import datetime
import sys
if __name__ == '__main__':
start_time = datetime.now()
MRJobClass.run()
end_time = datetime.now()
elapsed_time = end_time - start_time
sys.stderr.write(elapsed_time)
显示多步 map reduce 作业执行时间的最佳方式是什么?
我试图在工作的 step1 的 mapper init 中设置一个自变量
def mapper_init_timer(self):
self.start= time.process_time()
但是当我尝试在 Step2 的 reducer_final 中阅读此内容时
def reducer_final_timmer(self):
#self.start is None here
MRJob.set_status(self,"total time")
我不明白为什么在步骤之间丢失了自验证。 如果这是设计使然,那么我们如何计算 MrJob 脚本的执行时间,该脚本在 运行 和 -r hadoop 时也给出正确的结果。
最简单的方法是获取调用 run()
之前和之后的时间并找出它们的差异,
from datetime import datetime
import sys
if __name__ == '__main__':
start_time = datetime.now()
MRJobClass.run()
end_time = datetime.now()
elapsed_time = end_time - start_time
sys.stderr.write(elapsed_time)