我在运行Eclipse Juno的Windows 8 32位上。
我刚刚开始研究Amazon EMR。到目前为止,我已经能够使用SSH在Eclipse内从本地远程连接到EMR。通过在Eclipse中创建AWS项目并在EMR命令上使用Custom JAR执行,我可以在EMR上远程运行我的自定义JAR。
我现在正在尝试从Eclipse内部运行Apache Nutch 1.9。我做了Ant构建来创建Nutch Eclipse项目,并且正在成功地在Eclipse工作区中导出。现在,当我运行喷油器时,出现以下错误:
Injector: starting at 2015-04-20 00:56:08
Injector: crawlDb: crawl/crawldb
Injector: urlDir: urls
Injector: Converting injected urls to crawl db entries.
Injector: java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Kajari_G\mapred\staging\Kajari_G881485826\.staging to 0700
我发现这是针对Hadoop权限问题的起诉。经过大量的在线搜索后,我意识到这是Windows中的常见问题。我通过Cygwin以管理员身份运行了它,但仍然无法修复。
因此,现在我仍然想运行Injector代码,但是我想在我的远程EMR集群上而不是在本地运行它。
您能否指导我如何告诉我的Apache Nutch Eclipse项目在Amazon EMR而非本地运行?我不想创建一个JAR并运行它。我想在Eclipse中以通常的运行方式->运行它。
这有可能吗?我确实在网上搜索了此内容,但找不到任何有效的解决方案。
谢谢!
最佳答案
据我所知,您无法从Eclipse以分布式模式运行Nutch。为了在hadoop集群上运行Nutch,您必须遵循以下步骤:
ant runtime
hadoop jar nutch-$ {version} .job $ {your_main_class} $ {class_parameters}
例如,假设您在org.apache.nutch.crawl.crawler中的主要爬网程序类在这种情况下,正在运行的命令为:
hadoop jar nutch-${version}.job org.apache.nutch.crawl.crawler urls -dir crawl -depth 2 -topN 1000
关于java - 本地Eclipse中的Apache Nutch 1.9可在Amazon EMR上远程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29734911/