【发布时间】:2014-08-01 06:07:10
【问题描述】:
(已解决)我想联系hadoop集群并获取一些工作/任务信息。
在hadoop1中,我可以使用JobClient(本地伪分布式模式,使用Eclipse):
JobClient jobClient = new JobClient(new InetSocketAddress("127.0.0.1",9001),new JobConf(config));
JobID job_id = JobID.forName("job_xxxxxx");
RunningJob job = jobClient.getJob(job_id);
.....
今天搭建了一个伪分布式hadoop2 YARN集群,但是上面的代码不行。我使用资源管理器的端口(8032)。
JobClient jobClient = new JobClient(new InetSocketAddress("127.0.0.1",8032),new JobConf(config));
这一行给出了异常: 线程“主”java.io.IOException 中的异常:无法初始化集群。请检查您的配置是否有 mapreduce.framework.name 和相应的服务器地址。
我搜索此异常,但所有解决方案均无效。我使用 eclipse,并且添加了所有 hadoop jar,包括 hadoop-mapreduce-client-xxx。此外,我可以在我的集群上成功运行示例程序。 关于如何在 hadoop2 纱线上使用 JobClient 有什么建议吗?
更新:我可以通过使用与 rm 服务器相同的 hadoop 库进行编译来解决此问题。在 Eclipse 中它仍然给出这个异常,但是在我编译和部署我的项目之后它工作正常。(不知道为什么在 hadoop1 中它在 eclipse 中工作)不需要更改 api,JobClient 在 hadoop2 中仍然运行良好
【问题讨论】:
标签: hadoop hadoop-yarn hadoop2