在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);
.....今天我设置了一个pesudo分布式hadoop2纱线集群,然而,上面的代码不起作用。我使用资源管理器的端口(8032)。
JobClient jobClient = new JobClient(new InetSocketAddress("127.0.0.1",8032),new JobConf(config));我使用eclipse,并且我已经添加了所有hadoop jar,包括hadoop-mapreduce-client-xxx。
更新:通过使用与rm服务器相同的hadoop库进行编译,我能够解决这个问题。在Eclipse中,它仍然提供这个异常,但是在我编译和部署我的项目之后,它工作得很好。(不知道为什么在hadoop1中它可以在eclipse中工作)不需要更改api,JobClient在hadoop2中仍然运行得很好。
发布于 2014-08-01 16:11:31
您是否按如下方式配置了mapred-site.xml文件?它位于hadoop 2.x中的$HADOOP_HOME/etc/hadoop/中
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>编辑:还要确保yarn-site.xml (相同位置)包含以下属性:
<property>
<name>yarn.resourcemanager.address</name>
<value>host:port</value>
</property>最后一件事:我强烈建议您使用主机名而不是I。在配置文件中设置in时,hadoop有一些已知的失败案例。
https://stackoverflow.com/questions/25073858
复制相似问题