使用S3作为nutch存储系统

Using S3 as nutch storage system

我想使用 S3 作为我的 apache nutch 文件系统。我知道 hadoop 可以配置为使用 S3 作为它的 fs,但我找不到用 nutch 配置它的方法。有人能给我指出正确的方向,或者给我一个快速的方法概述吗?或者,能够使用 readseg 命令将数据转储到 s3 将是一个解决方案,而不是将整个文件系统都放在 s3 中,这可能吗?

干杯

理论上,如果您添加 fs.s3a.impl 的键值并修改 core-site.xml fs.defaultFS 以指向 S3 存储桶路径,那么它应该可以工作。该问题并不特别限于 Nutch

https://hadoop.apache.org/docs/current/hadoop-aws/tools/hadoop-aws/index.html

Nutch when 运行 在(伪)分布式模式下被证明可以与底层 Hadoop 安装支持的任何文件系统一起工作,包括 S3 或 S3A。

请注意:

  • 当 运行 在本地模式下时,它不能开箱即用,因为默认情况下所需的库不是 Nutch 的依赖项。您需要添加所有必要的库作为 IVY 管理的依赖项并重新编译 Nutch。
  • 以前版本的 Nutch 中存在一些问题,其中 HDFS 已硬连接到代码中。这已在 1.14 中修复,请参阅 NUTCH-2281
  • Nutch 使用文件系统 "mv" 自动安装当前版本的 CrawlDb 和 LinkDb。在 S3 上,这意味着复制文件的速度非常慢。将 CrawlDb 保留在 HDFS 上并不时将其 distcp 到 S3 可能更有效。
  • Segments 具有唯一的名称,因此可以有效地保存在 S3 上。但也看看 documentation of S3A committers.