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

n6lpvg4x  于 2021-06-03  发布在  Hadoop
关注(0)|答案(5)|浏览(331)

这个问题与我之前的问题有关,所有守护进程都在运行,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)

因为它说问题出在配置上,所以我把配置文件贴在这里。其目的是创建一个单节点集群。
yarn-site.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>

core-site.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>

mapred-site.xml文件

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

请告诉我丢失了什么或者我做错了什么。

yfjy0ee7

yfjy0ee71#

在我的例子中,我尝试使用sqoop时遇到了这个错误。原来我指的是cdh-repo提供的hadoop2.0的最新版本,但不支持sqoop。cloudera的版本是2.0.0-cdh4.4.0,它内置了Yarn支持。
当我在hadoop-0.20下使用2.0.0-cdh4.4.0时,问题就消失了。
希望这有帮助。

d8tt03nd

d8tt03nd2#

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

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

kr98yfug3#

将mapreduce\u shuffle更改为mapreduce.shuffle使它在我的情况下工作

zlhcx6iw

zlhcx6iw4#

看来我今天很幸运,除了这个例外,我经历了所有这些原因。总结:
mapreduce.framework.name错误(见上文)
缺少mapreduce作业客户端jar(见上文)
版本错误(请参阅无法初始化群集。请检查mapreduce.framework.name的配置以及提交job2remoteclustr的相应服务器地址
我配置的'yarn.ipc.client.factory.class'不在yarn服务器的类路径中(仅在客户端上)

4jb9z9bj

4jb9z9bj5#

我也有类似的问题,但Yarn不是问题所在。将以下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

相关问题