mrjob多步骤作业执行时间

hujrc8aj  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(628)

显示多步骤map reduce作业的执行时间的最佳方式是什么?
我试图在作业步骤1的mapper init中设置一个自变量

def mapper_init_timer(self):
      self.start= time.process_time()

但是当我在第二步的最后一节读到这个的时候

def reducer_final_timmer(self):
    #self.start is None here
    MRJob.set_status(self,"total time")

我不明白为什么在两步之间会丢失自我验证。如果这是设计的,那么我们如何计算mrjob脚本的执行时间,当使用-r hadoop运行时,该脚本也会给出正确的结果。

ssm49v7z

ssm49v7z1#

最简单的方法是获取调用 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)

相关问题