【问题标题】:Error running hadoop application in Eclipse on Windows在 Windows 上的 Eclipse 中运行 hadoop 应用程序时出错
【发布时间】:2014-12-17 00:44:51
【问题描述】:

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

窗口:7 日食:月神 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 我试过用文件指定输入和输出:格式

注意。我不是在询问如何配置 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

一切都开始工作了。

【问题讨论】:

  • 检查5台服务器是否都在运行?

标签: eclipse hadoop


【解决方案1】:

以下博客会很有用。

Running mapreduce in Windows filesystem

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    相关资源
    最近更新 更多