在 Hadoop 2 上运行作业时无法初始化集群异常



这个问题与我之前的问题有关 所有守护进程都在运行,jps 显示:

6663 JobHistoryServer
7213 ResourceManager
9235 Jps
6289 DataNode
6200 NameNode
7420 NodeManager

但是wordcount示例不断失败,并出现以下异常:

ERROR security.UserGroupInformation: PriviledgedActionException as:root (auth:SIMPLE) cause:java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.
Exception in thread "main" 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:1238)
    at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1234)
    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:1491)
    at org.apache.hadoop.mapreduce.Job.connect(Job.java:1233)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1262)
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1286)
    at WordCount.main(WordCount.java:80)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

由于它说问题出在配置上,所以我在这里发布配置文件。目的是创建单节点群集。

纱线站点.xml

<?xml version="1.0"?>
 <configuration>
<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>
</configuration>

核心站点.xml

<configuration>
<property>
   <name>fs.default.name</name>
   <value>hdfs://localhost:9000</value>
</property>
</configuration>

HDFS-site.xml

 <configuration>
 <property>
   <name>dfs.replication</name>
   <value>1</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/home/hduser/yarn/yarn_data/hdfs/namenode</value>
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/home/hduser/yarn/yarn_data/hdfs/datanode</value>
 </property>
 </configuration>

地图网站.xml

<configuration>
  <property>
      <name>mapreduce.framework.name</name>
      <value>Yarn</value>
  </property>
</configuration>

请告诉我缺少什么或我做错了什么。

我遇到了类似的问题,但纱线不是问题所在。将以下 jar 添加到我的类路径问题后得到解决:

  • Hadoop-mapreduce-client-jobclient-2.2.0.2.0.6.0-76
  • Hadoop-mapreduce-client-common-2.2.0.2.0.6.0-76
  • Hadoop-mapreduce-client-shuffle-2.2.0.2.0.6.0-76

你有大写的Yarn,这可能就是它无法解决它的原因。尝试官方文档中建议的小写版本。

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

看起来我度过了幸运的一天,并且通过"所有"这些原因都例外了。总结:

  • 错误的 mapreduce.framework.name(见上文)
  • 缺少MapReduce作业客户端jar(见上文)
  • 版本错误(请参阅无法初始化集群。请检查您的配置是否有 mapreduce.framework.name 和相应的服务器地址-提交 job2remoteClustr )
  • 我配置的"yarn.ipc.client.factory.class"不在 yarn 服务器的类路径中(仅在客户端上)

就我而言,我试图使用 sqoop 并遇到了此错误。事实证明,我指的是CDH存储库中不支持sqoop的最新版本的Hadoop2.0。cloudera 的版本是 2.0.0-cdh4.4.0,内置了纱线支持。

当我在Hadoop-0.20下使用2.0.0-cdh4.4.0时,问题消失了。
希望这有帮助。

mapreduce_shuffle更改为mapreduce.shuffle使其在我的情况下工作

相关内容

  • 没有找到相关文章

最新更新