分布式模式下的 Apache nutch 不会从网络上抓取

Apache nutch in distributed mode not going to crawl from web

我正在使用 apache nutch 2.3、hadoop 1.2.1(3 个数据节点)、hbase 0.94、solr 4.8。为了运行 apache nutch是分布式模式。我执行以下步骤

  1. 转到runtime/deploy目录
  2. 复制 apache-nutch-2.3.jar 到部署目录
  3. 运行 这个命令 runtime/deploy/bin/crawl urls/ hbase_table http://solrHost:8983/solr 1

其中 hbase_table 是 hbase table 的名称,nutch 将在其中存储数据。 命令启动后,Mapreduce 作业针对每个 phbase 启动,即注入、生成、fetech、dedup、sorlrindex。所有这些 mapreduce 作业都完成了,没有任何错误。但是当我从 HDFS 检查时,hbase_table 中没有数据。哪里配置有问题。不幸的是,分布式模式指南中的 Apache nutch 并不完全可用(根据我的搜索)

我也遇到了同样的问题,但软件版本稍高。看到这个 post Nutch Solr dataimport handler?

作为解决方法,您可以通过打开 hbase shell 和 运行 这些命令来计算 hbase 中的记录

> list (this will make sure the table is getting created.)
> count 'hbase_table' (this will give you records in it.)

或者 运行 将所有命令作为一个批次执行,尝试 运行 单独执行它们。
否则你可以粘贴日志文件。

在apache nutch 的分布式模式下,您必须检查您的tasktracker 的日志。抓取的文档的详细信息应该在那里,而不是在 mapreduce 日志中。它的 url 就像(如果您使用的是默认配置)

http://data-node-ip:50060/logs/hadoop-{user-name}-tasktracker-{machine-name}.log