无法初始化群集。请检查您的配置mapreduce.framework.name和相应的服务器地址 - 提交job2remoteClustr

时间:2013-09-27 06:21:19

标签: hadoop mapreduce cloudera

我最近将我的群集从Apache Hadoop1.0升级到CDH4.4.0。我在另一台机器上有一个weblogic服务器,我通过mapreduce客户端将作业提交到这个远程集群。我仍然想使用MR1而不是Yarn。我已经在CDH安装中针对客户端jar编译了我的客户端代码(/ usr / lib / hadoop / client / *)

创建JobClient实例时出现以下错误。 有很多与同一问题相关的帖子,但所有解决方案都指的是将作业提交到本地群集而不是远程的情况,特别是在我的情况下从wls容器

JobClient jc = new JobClient(conf);

Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.

但是从群集上的命令提示符运行完全正常。

感谢您的及时帮助!

8 个答案:

答案 0 :(得分:17)

我遇到了类似的错误,并将以下jar添加到classpath中,它对我有用: hadoop-mapreduce-client-jobclient-2.2.0.2.0.6.0-76:hadoop-mapreduce-client-shuffle-2.3.0.jar:hadoop-mapreduce-client-common-2.3.0.jar

答案 1 :(得分:4)

您的应用可能正在查看旧的Hadoop 1.x配置文件。也许你的应用硬编码一些配置?此错误往往表明您正在使用新的客户端库,但他们没有看到新式配置。

它必须存在,因为命令行工具看得很好。检查您的HADOOP_HOMEHADOOP_CONF_DIR env变量,尽管命令行工具往往会采用这些变量,但它们可以正常工作。

请注意,您需要在CDH 4.4中安装'mapreduce'服务而不是'yarn',以使其与MR1客户端兼容。另请参阅Maven中的'...- mr1 -...'工件。

答案 2 :(得分:3)

就我而言,此错误是由于版本的jar,请确保您使用的是与服务器版本相同的版本。

答案 3 :(得分:2)

export HADOOP_MAPRED_HOME = / cloudera / parcels / CDH-4.1.3-1.cdh4.1.3.p0.23 / lib / hadoop-0.20-mapreduce

答案 4 :(得分:2)

我是我的情况我正在运行sqoop 1.4.5并将其指向最新的hadoop 2.0.0-cdh4.4.0,其中有纱线的东西也就是为什么它抱怨。

当我将sqoop指向hadoop-0.20 / 2.0.0-cdh4.4.0(我认为是MR1)时,它有效。

答案 5 :(得分:1)

就我而言,奇怪的是这个错误是因为在我的'core-site.xml'文件中,我提到了“IP-address”而不是“hostname”。 我提到“hostname”代替IP地址并在“core-site.xml”和“mapred.xml”中重新安装mapreduce lib文件的那一刻,错误得到了解决。

答案 6 :(得分:0)

与Akshay(由Setob_b评论)一样,我需要修复的就是在类路径上获取hadoop-mapreduce-client-shuffle-.jar。

对于Maven如下:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-mapreduce-client-shuffle</artifactId>
    <version>${hadoop.version}</version>
</dependency>

答案 7 :(得分:0)

就我而言,我通过使用hadoop jar而不是java -jar解决了这个问题。 很有用,hadoop将提供hdfs-site.xml,core-site.xml ...的配置上下文。