在Windows上的Eclipse中运行hadoop应用程序时出错

在Windows上的Eclipse中运行hadoop应用程序时出错,eclipse,hadoop,Eclipse,Hadoop,我正试图为开发和调试hadoop设置一个Eclipse环境。我正在关注Tom White的权威Hadoop第三版。我想做的是让MaxTemperature应用程序在Eclipse中的Windows上本地运行,然后再将其移动到我的Hortonworks沙盒VM。第158页关于使用本地招聘人员的评论似乎正是我想要的。我不想在Windows上设置完整的hadoop实现。我希望通过正确的配置参数,我可以说服它在Eclipse中作为java应用程序运行 窗口:7 月食:月亮 Hadoop:2.4.0 JD

我正试图为开发和调试hadoop设置一个Eclipse环境。我正在关注Tom White的权威Hadoop第三版。我想做的是让MaxTemperature应用程序在Eclipse中的Windows上本地运行,然后再将其移动到我的Hortonworks沙盒VM。第158页关于使用本地招聘人员的评论似乎正是我想要的。我不想在Windows上设置完整的hadoop实现。我希望通过正确的配置参数,我可以说服它在Eclipse中作为java应用程序运行

窗口:7 月食:月亮 Hadoop:2.4.0 JDK:7

当我在第157页将MaxTemperatureDriver源代码的运行配置设置为

  inputfile outputdir foo (deliberate bogus 3rd parameter)
我得到了使用信息,所以我知道我正在用这些参数运行我的程序

如果我移除伪造的第三个参数

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:1255)
    at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1251)
    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:1548)
    at org.apache.hadoop.mapreduce.Job.connect(Job.java:1250)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1279)
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1303)
    at mark.MaxTemperatureDriver.run(MaxTemperatureDriver.java:52)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
    at mark.MaxTemperatureDriver.main(MaxTemperatureDriver.java:56)
我想知道的不是为什么YanClientProtocolProvider失败,而是为什么它没有尝试LocalClientProtocolProvider

新信息: 这似乎是Hadoop 2.4.0的一个问题。我使用Hadoop 1.2.1重新创建了我的环境,并按照中的说明进行了操作

添加了来自


这一切都开始起作用了。

下面的博客会很有用。

检查是否所有5台服务器都在运行?
582 [main] DEBUG org.apache.hadoop.mapreduce.Cluster  - Trying ClientProtocolProvider : org.apache.hadoop.mapred.YarnClientProtocolProvider
583 [main] DEBUG org.apache.hadoop.mapreduce.Cluster  - Cannot pick org.apache.hadoop.mapred.YarnClientProtocolProvider as the ClientProtocolProvider - returned null protocol