gpt4 book ai didi

java - Hadoop JobClient getJob方法执行时间太长

转载 作者:行者123 更新时间:2023-12-02 21:35:25 26 4
gpt4 key购买 nike

我正在尝试使用jobId从Hadoop 2.6.0集群中获取当前正在运行的作业。

我输入了当前正在运行的Hadoop作业的jobId。我想使用RunningJob对象获取有关Hadoop作业的详细信息

我正在使用Hadoop 2.x Java API。

为此,我使用了以下代码:

JobID jobID = JobID.forName(jobId);
Configuration conf = new Configuration();
JobClient client = new JobClient(new InetSocketAddress(ip,conf));
RunningJob job = client.getJob(jobId);

如果作业当前处于 RUNNING阶段,则 getJob()执行所需的时间太长。

我不明白为什么要花太多时间才能获得RunningJob对象。

我已经在 Hadoop 1.1.2版本中尝试过相同的方法,但是在那里我没有遇到过这个问题。在这种情况下,我使用了Hadoop 1.x Java API。

最佳答案

我今天也遇到同样的问题。
Hadoop的JobClient希望使用3个必须的参数来跟踪 yarn 。

1. yarn.resourcemanager.address

2. mapreduce.jobhistory.address

3. mapreduce.framework.name

它应该以以下方式调用以创建jobClient

Configuration conf = new Configuration();
conf.set("mapreduce.framework.name", "yarn");
conf.set("yarn.resourcemanager.address",jobTrackerIp);
conf.set("mapreduce.jobhistory.address",jobHistoryIp);
JobClient client = new JobClient(conf);

以这种方式创建后,即可使用jobClient。他们消除了后端中的某些错误,并使用了重试逻辑。这就是为什么我们无法在代码中看到任何错误的原因。

关于java - Hadoop JobClient getJob方法执行时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32688722/

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