Nutch 地图减少工作卡在 67%

问题描述

我使用 Nutch 1.17 在本地机器上的 Solr 中抓取网站和索引数据。一开始,我设置参数为topN=2,depth=2,爬取成功。然后,我将参数更改为topN=3,depth=3,但是map-reduce中的reduce过程卡在了67%。这一切都在 4GB 内存下运行。

然后,我尝试将 RAM 设为 8GB,但同样的问题仍然存在。可能是什么问题?我怎样才能进一步分类?请协助。

以下是日志:

2021-04-30 17:58:58,432 INFO mapreduce.Job - 跟踪 工作:http://localhost:8080/ 2021-04-30 17:58:58,432 信息 mapreduce.Job - 运行作业:job_local71316116_0001 2021-04-30 17:58:58,643 INFO regex.RegexURLnormalizer - 找不到规则 范围“索引器”,使用认值 2021-04-30 17:58:58,752 INFO regex.RegexURLnormalizer - 找不到范围“索引器”的规则,使用 认 2021-04-30 17:58:58,840 INFO regex.RegexURLnormalizer - 不能 查找范围“索引器”的规则,使用认值 2021-04-30 17:58:58,890 INFO regex.RegexURLnormalizer - 找不到范围“索引器”的规则, 使用认 2021-04-30 17:58:58,929 INFO regex.RegexURLnormalizer - 找不到范围“索引器”的规则,使用认值 2021-04-30 17:58:58,979 WARN impl.MetricsSystemImpl - JobTracker 指标系统 已经初始化! 2021-04-30 17:58:59,020 信息 indexer.IndexWriters - 索引编写器 org.apache.nutch.indexwriter.solr.solrIndexWriter 标识。 2021-04-30 17:58:59,057 WARN exchange.Exchanges - 没有交换 配置。文档将被路由到所有索引编写器。 2021-04-30 17:58:59,435 信息 mapreduce.Job - 工作 job_local71316116_0001 在超级模式下运行:错误 2021-04-30 17:58:59,437 INFO mapreduce.Job - 地图 100% 减少 0% 2021-04-30 17:59:11,444 INFO mapreduce.Job - 地图 100% 减少 67%

解决方法

索引器作业在缩减阶段的最后三分之一开始将文档发送到 Solr。根据是否对大型文档和字段进行索引,此阶段可能比索引器作业的前几个阶段慢。寻找潜在原因:

  • 验证 Solr 是否已启动且未报告错误
  • 使用实用程序“jstack”来获取正在挂起的索引器作业的确切信息
  • topN=3 - 这意味着您每个周期只抓取和索引 3 个页面。这使得问题很容易重现:您可以使用工具 bin/nutch indexchecker 分别发送这 3 个 URL 中的每一个的提取和索引。获取 URL 时会记录这些 URL。
  • 还要查看 hadoop.log,它比写入 stdout 的信息更冗长且包含更多信息