这个问题与我之前的问题有关 所有守护进程都在运行,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使其在我的情况下工作