Java 本地Eclipse中的ApacheNutch1.9将在AmazonEMR上远程运行

Java 本地Eclipse中的ApacheNutch1.9将在AmazonEMR上远程运行,java,eclipse,hadoop,amazon-web-services,nutch,Java,Eclipse,Hadoop,Amazon Web Services,Nutch,我在Windows8 32位上,运行EclipseJuno 我刚刚开始亚马逊电子病历的工作。到目前为止,我能够使用SSH和Eclipse从本地远程连接到EMR。通过在Eclipse中创建AWS项目并在EMR命令上使用自定义JAR执行,我可以在EMR上远程运行自定义JAR 我现在正试图从Eclipse内部运行ApacheNutch1.9。我做了Ant构建来创建NutchEclipse项目,我正在Eclipse工作区内成功导出。现在,当我运行喷油器时,出现以下错误: Injector: starti

我在Windows8 32位上,运行EclipseJuno

我刚刚开始亚马逊电子病历的工作。到目前为止,我能够使用SSH和Eclipse从本地远程连接到EMR。通过在Eclipse中创建AWS项目并在EMR命令上使用自定义JAR执行,我可以在EMR上远程运行自定义JAR

我现在正试图从Eclipse内部运行ApacheNutch1.9。我做了Ant构建来创建NutchEclipse项目,我正在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集群上运行它,而不是在本地

您能指导我如何告诉我的ApacheNutchEclipse项目在AmazonEMR上运行而不是在本地运行吗?我不想创建一个JAR并运行它。我希望在Eclipse中以-->的方式运行它

这有可能吗?我确实在网上搜索过这个,但找不到任何有效的解决方案


谢谢

据我所知,您不能从Eclipse以分布式模式运行Nutch。为了在hadoop集群上运行Nutch,您必须遵循以下步骤:

  • 在nutch-site.xml和其他配置文件中应用所需的配置(根据所选插件)

  • 使用ant运行时构建Nutch

  • 按照runtime/deploy目录查找nutch hadoop作业

  • 运行以下命令:

    hadoop jar nutch-${version}.job${your_main_class}${class_parameters}

例如,假设您的主爬虫类位于org.apache.nutch.crawler.crawler中,在这种情况下,运行的命令是:

hadoop jar nutch-${version}.job org.apache.nutch.crawl.crawler urls -dir crawl -depth 2 -topN 1000