在Hadoop集群上运行mapreduce jar

时间:2011-04-08 20:16:54

标签: netbeans hadoop mapreduce

我正在尝试在Hadoop上运行地图减少二次筛分算法的实现。为此,我正在使用带有Netbeans的karmasphere Hadoop社区插件。该程序使用该插件工作正常。但是我无法在实际集群上运行它。 我正在运行此命令

             bin/hadoop jar MRIF.jar 689 

其中MRIF.jar是通过构建netbeans项目而生成的jar文件,而689是要考虑的数字。输入和输出目录在程序本身中进行硬编码。在实际集群上运行时,似乎内部java类未被处理,因为reduce在映射为0%之前完成为100%。输入和输出文件是在没有内容的情况下创建的。

但是当使用Karmasphere插件运行时,这可以正常工作。

1 个答案:

答案 0 :(得分:1)

尝试将其作为bin/hadoop -jar MRIF.jar 689运行。 -jar强制它在本地运行并向控制台显示信息以及向该计算机发送日志。您还可以查看Hadoop日志,看看他们是否有任何指示未正确发生的原因。

使用-jar时,您可以使用System.out.println(...);在控制台上显示信息,进一步帮助调试。

您还可以使用Hadoop Counters(链接是我发现的随机博客文章)来帮助您在运行(psuedo-)时进行故障排除。

我承认这篇文章不是问题的“解决方案”;如果没有更多/更多有关正在发生的事情和地点的信息,可能会发生各种各样的事情。如果你没有处理'内部java类'那么它可能就是你的实现,我们无法看到它们提出建议等等。

有关此问题的更多数据(例如日志,错误或输出)可能有助于获得更多解决方案响应,而不是调试提示。 :)

编辑:感谢您提供的文件链接。我认为你的电话缺少一个组件。

我查看了run.sh并认为这可能会让它适合你:

bin/hadoop jar mrif.jar com.javiertordable.mrif.MapReduceQuadraticSieve 689