Nutch 1.x:如何使用 s3a 代替 HDFS?

Posted

技术标签:

【中文标题】Nutch 1.x:如何使用 s3a 代替 HDFS?【英文标题】:Nutch 1.x: How to use s3a instead of HDFS? 【发布时间】:2019-08-12 09:21:11 【问题描述】:

我已经阅读了官方Apache Nutch with Hadoop tutorial。它谈到了在“部署模式”(即在 Hadoop 集群中)使用 Nutch 时使用 HDFS 存储 Nutch 的数据。

在使用 Hadoop 时,我更喜欢使用 s3a 而不是 HDFS 作为存储后端。 Nutch 1.x 是否支持使用 s3a 而不是 HDFS 来存储数据?如果是这样,需要调整哪些相关的 Nutch/Hadoop 设置?

【问题讨论】:

【参考方案1】:

如果底层 Hadoop 支持,最新版本的 Nutch 1.x(1.14 及更高版本,请参阅 NUTCH-2281)支持开箱即用的 s3a 文件系统。

注意:通常,s3a 比 HDFS 慢,请参阅S3A performance issues。这尤其适用于 Nutch 的 CrawlDb 或 LinkDb。 CrawlDb 每个周期都会更新,首先将新的 CrawlDb 写入新目录,然后通过将新的 CrawlDb 移动到“当前”来替换活动的 CrawlDb(称为“当前”)。 “mv”在 HDFS 上很便宜,但不在 S3A 上。

最终,您可能希望将 CrawlDb 保留在 HDFS 上,并使用“distcp”在 S3A 上检查点。

【讨论】:

谢谢。 file://(本地文件系统)也支持吗? 本地文件系统用于本地模式的存储。在完全分布式模式下,它几乎不能使用,因为放在file:// 上的任何文件都必须在所有集群节点上可见且可访问。对于爬取本地文件系统,有一个插件“protocol-file”。

以上是关于Nutch 1.x:如何使用 s3a 代替 HDFS?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Apache Spark 访问 s3a:// 文件?

如何在 Spark Submit 中将 s3a 与 Apache spark 2.2(hadoop 2.8) 一起使用?

如何在Java应用程序中使用Nutch API?

如何在Spark提交中使用s3a和Apache spark 2.2(hadoop 2.8)?

如何在以伪分布式模式安装的Hadoop中运行Nutch

使用 Spark 访问 s3a 时出现 403 错误