创建JobClient遇到的错误

来源:互联网 发布:mac文件共享给windows 编辑:程序博客网 时间:2024/04/28 05:13

创建JobClient时候总出现这个错误:

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:119)at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:81)at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:74)at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1188)at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1184)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:396)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1478)at org.apache.hadoop.mapreduce.Job.connect(Job.java:1183)at org.apache.hadoop.mapreduce.Job.submit(Job.java:1212)at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1236)

这是因为 Cluster 中的 frameworkLoader 什么也没加载到:

  private static ServiceLoader<ClientProtocolProvider> frameworkLoader =      ServiceLoader.load(ClientProtocolProvider.class);

于是把包含 ClientProtocolProvider 子类的两个包全部引入后便正常了。

<groupId>org.apache.hadoop</groupId>  <artifactId>hadoop-mapreduce-client-common</artifactId>  <version>2.0.5-alpha</version>
<groupId>org.apache.hadoop</groupId>  <artifactId>hadoop-mapreduce-client-jobclient</artifactId>  <version>2.0.5-alpha</version>