gpt4 book ai didi

hadoop - 使用JobControl测量Hadoop作业时间

转载 作者:行者123 更新时间:2023-12-02 20:13:38 25 4
gpt4 key购买 nike

我以前用以下命令启动Hadoop工作

long start = new Date().getTime();
boolean status = job.waitForCompletion(true);
long end = new Date().getTime();

这样,一旦作业直接在我的代码中结束,我就可以测量该作业所花费的时间。

现在,我必须使用JobControl来表达我的工作之间的依赖关系:
JobControl jobControl = new JobControl("MyJob");
jobControl.addJob(job1);
jobControl.addJob(job2);
job3.addDependingJob(job2);
jobControl.addJob(job3);

jobControl.run();

但是,一旦执行了jobControl.run(),代码就再也行不通了,因此,我无法包含在jobControl.getState()上轮询以完成作业的代码。

如何使用JobControl测量作业花费的时间?

最佳答案

JobControl没有很好的功能,因此您无法挂钩并获取此信息。您可以尝试一些(可能会很痛苦)的选择:

  • 在单独的线程中启动JobControl.run(),然后在您的主线程中,轮询JobControl.getXXXJobs()方法以跟踪作业何时更改状态
  • 查看使用Job End Notification URL hook,但这将要求您在客户端中启动一个“服务器”以接收通知事件,然后尝试从作业结束时向后工作
  • 扩展JobControljobcontrol.Job对象以跟踪作业何时更改状态,并添加方法以查询开始/结束时间
  • 关于hadoop - 使用JobControl测量Hadoop作业时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10119460/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com