java - 本地Eclipse中的Apache Nutch 1.9可在Amazon EMR上远程运行

标签 java eclipse hadoop amazon-web-services nutch

我在运行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,您必须遵循以下步骤:

  • 在nutch-site.xml和其他配置文件中应用所需的配置(根据所选插件)
  • 使用ant runtime
  • 构建Nutch
  • 跟随runtime / deploy目录查找适当的hadoop作业。
  • 运行以下命令:

    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/

    相关文章:

    java - 如何在 Eclipse 中将多个 Java 练习放入一个类中?

    从类路径中排除 jar 的 Eclipse 运行配置

    java - 在现代项目中使用具有较旧语言级别的 JAR 对性能有何影响?`

    java - 从多个 XML 文件/字符串进行 Saxon/Javax 转换

    java - Angular 2 Jax-RS 的 GET 比 POST 更快

    hadoop - 使用 DistributedCache 访问 MapFile 时出现 FileNotFoundException

    hadoop - hadoop 中的 Zstandard 级别

    java - Struts 和日志记录 HTTP POST 请求正文

    适用于 RCP 和 RAD 开发人员的 Eclipse Helios 将不会更新到 3.6.2

    serialization - 如何将复杂对象存入hadoop Hbase?