【问题标题】:How to use JobClient in hadoop2(yarn)如何在 hadoop2(yarn) 中使用 JobClient
【发布时间】: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


    【解决方案1】:

    您是否按照以下方式配置了 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>
    

    最后一件事:我强烈建议您使用主机名而不是 IP。在配置文件中设置 IP 时,hadoop 会发生故障。

    【讨论】:

    • 感谢您的建议:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多