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

时间:2014-07-28 06:19:00

标签: eclipse hadoop

我正在尝试设置Eclipse环境来开发和调试hadoop。我正在关注Tom White的Definitive Hadoop 3rd ed。我想要做的是将MaxTemperature应用程序在Eclipse中的Windows上本地工作,然后再将其移动到我的Hortonworks沙箱VM。第158页关于使用本地工作跑步者的评论似乎是我想要的。我不想在Windows上设置完整的hadoop实现。我希望使用正确的配置参数,我可以说服它在Eclipse中作为java应用程序运行。

Windows:7 Eclipse:Luna Hadoop:2.4.0 JDK:7

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

  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)

我尝试插入-conf但似乎被忽略了。如果我指定不存在的路径,则没有错误消息。 我试过插入-fs file:/// -jt local,但没有区别 我试过插入-D mapreduce.framework.name=local 我尝试使用以下文件指定输入和输出:format

请注意。我没有询问如何配置eclipse以连接到远程Hadoop安装。我希望应用程序在eclipse中运行。

这可能吗?有什么想法吗?

其他信息: 我打开调试。我看到了:

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

我想知道为什么YarnClientProtocolProvider失败了,但为什么它没有尝试使用LocalClientProtocolProvider。

新信息: 看来这是Hadoop 2.4.0的一个问题。我使用Hadoop 1.2.1重新创建了我的环境,按照

中的说明进行操作

http://gerrymcnicol.com/index.php/2014/01/02/hadoop-and-cassandra-part-4-writing-your-first-mapreduce-job/

添加了Windows hack

http://bigdatanerd.wordpress.com/2013/11/14/mapreduce-running-mapreduce-in-windows-file-system-debug-mapreduce-in-eclipse

这一切都开始起作用了。

1 个答案:

答案 0 :(得分:0)

关注博客会很有用。

Running mapreduce in Windows filesystem