我正在尝试在Hadoop上运行地图减少二次筛分算法的实现。为此,我正在使用带有Netbeans的karmasphere Hadoop社区插件。该程序使用该插件工作正常。但是我无法在实际集群上运行它。 我正在运行此命令
bin/hadoop jar MRIF.jar 689
其中MRIF.jar是通过构建netbeans项目而生成的jar文件,而689是要考虑的数字。输入和输出目录在程序本身中进行硬编码。在实际集群上运行时,似乎内部java类未被处理,因为reduce在映射为0%之前完成为100%。输入和输出文件是在没有内容的情况下创建的。
但是当使用Karmasphere插件运行时,这可以正常工作。
答案 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