【问题标题】:IOException: Cannot initialize Cluster | hadoop 2.4.0IOException:无法初始化集群 | Hadoop 2.4.0
【发布时间】:2014-11-19 10:05:32
【问题描述】:

我正在尝试使用 hadoop 2.4.0 运行 Map-reduce 我的代码对第三方 jar 有一些依赖关系,所以我使用 eclipse export->runnable Jar 选项创建了一个 FAT jar。

现在当我使用

运行 FAT jar
       hadoop jar ~/Documents/job.jar

我得到了异常

      java.lang.reflect.InvocationTargetException

上面的异常是由这个引起的:

Caused by: java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.
at org.apache.hadoop.mapreduce.Cluster.initialize(Cluster.java:120)
at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:82)
at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:75)
at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1255)
at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1251)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)
at org.apache.hadoop.mapreduce.Job.connect(Job.java:1250)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:1279)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1303)
at imgProc.MasterClass.main(MasterClass.java:84)
... 10 more

hadoop 类路径

hduser@livingstream:/usr/local/hadoop$ hadoop classpath
/usr/local/hadoop-2.4.0/etc/hadoop:/usr/local/hadoop-`2.4.0/share/hadoop/common/lib/*:/usr/local/hadoop-2.4.0/share/hadoop/common/*:/usr/local/hadoop-2.4.0/share/hadoop/hdfs:/usr/local/hadoop-2.4.0/share/hadoop/hdfs/lib/*:/usr/local/hadoop-2.4.0/share/hadoop/hdfs/*:/usr/local/hadoop-2.4.0/share/hadoop/yarn/lib/*:/usr/local/hadoop-2.4.0/share/hadoop/yarn/*:/usr/local/hadoop-2.4.0/share/hadoop/mapreduce/lib/*:/usr/local/hadoop-2.4.0/share/hadoop/mapreduce/*:/usr/local/hadoop/contrib/capacity-scheduler/*.jar`

我的配置文件

ma​​pred-site.xml

<configuration>

    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>


</configuration>

core-site.xml

<configuration>

<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:54310</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/hadoop/data</value>
</property>



</configuration>

yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
  <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>localhost:8025</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>localhost:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>localhost:8050</value>
    </property>
</configuration>

我不确定现在发生了什么,是因为 JAR 还是我的配置文件。 任何人都有任何想法,任何事情都值得赞赏! :)

【问题讨论】:

  • 这个问题你解决了吗?

标签: java hadoop jar hadoop2


【解决方案1】:

错误消息明确指出,

Caused by: java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.  

您必须配置mapred-site.xml and core-site.xml 和许多其他您应该做的配置..
一步一步,你参考这个链接Hadoop V2 setup

希望对你有所帮助。

【讨论】:

  • 我用我的配置站点编辑了这个问题。我认为它们看起来是正确的,也许你可以看看我缺少的东西
  • 配置文件似乎是正确的。你能检查imgProc.MasterClass.main(MasterClass.java:84) 行它在调用什么吗?并将它的 sn-p 粘贴到它抛出异常的地方。您用来运行作业的完整命令是什么?
猜你喜欢
  • 1970-01-01
  • 2020-12-07
  • 2013-11-07
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
  • 2021-02-11
相关资源
最近更新 更多