【发布时间】:2017-05-19 08:11:01
【问题描述】:
我在一个 ec2 实例上集成了 Nutch1.13 和 Solr 6.5.1。我确实使用下面的 cp 命令将 schema.xml 复制到 Solr。我在 nutch_home/conf 文件夹中的 nutch-site.xml 中将 localhost 作为 elatic.host。
cp /usr/local/apache-nutch-1.13/conf/schema.xml /usr/local/apache-nutch-1.13/solr-6.5.1/server/solr/nutch/conf/
自从 solr 6 以来,每次创建托管模式时,一切都正常。我试过的命令是
[ec2-user@ip-172-31-16-137 apache-nutch-1.13]$ bin/crawl -i -D solr.server.url=http://35.160.82.191:8983/solr/#/nutch/urls/ 爬取1
一切似乎都很好,直到在上面的命令运行时建立索引。我完全卡在最后一步了。
错误运行: /usr/local/apache-nutch-1.13/bin/nutch index -Dsolr.server.url=://35.160.82.191:8983/solr/#/nutch/ crawl/crawldb -linkdb crawl/linkdb crawl/segments/20170519074733 失败,退出值为 255。
提前致谢
更新 我在 conf/nutch-site.xml 中更改了下面的 prperty
<property>
<name>plugin.includes</name>
<value>protocol-http|urlfilter-regex|parse-html|index-(basic|anchor)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)</value>
</property>
现在没有错误但我得到关注
重复数据删除于 2017-05-19 10:08:05 完成,经过时间:00:00:03 将 20170519100420 编入索引 /usr/local/apache-nutch-1.13/bin/nutch index -Dsolr.server.url=//35.160.82.191:8983/solr/nutch/ crawl/crawldb -linkdb crawl/linkdb crawl/segments/20170519100420 段目录已完成: crawl/segments/20170519100420。 索引器:开始于 2017-05-19 10:08:06 索引器:删除已删除的文档:false 索引器:URL 过滤:false 索引器:URL 规范化:false 没有激活 IndexWriters - 检查您的配置 索引器:索引、删除或跳过的文档数: 索引器:44 个索引(添加/更新) 索引器:完成于 2017-05-19 10:08:10,经过:00:00:03 如果可能,清理索引 /usr/local/apache-nutch-1.13/bin/nutch clean -Dsolr.server.url=//35.160.82.191:8983/solr/nutch/ crawl/crawldb 2017 年 5 月 19 日星期五 10:08:13 UTC:完成 1 次迭代的循环
更新 2 我发现在此post 中建议在 nutch-site.xml 帮助中添加 solr-indexer 但现在错误出现在清理部分
错误运行: /usr/local/apache-nutch-1.13/bin/nutch clean -Dsolr.server.url=://35.160.82.191:8983/solr/nutch/ crawl/crawldb 失败,退出值为 255。
任何建议,因为我想使用 Solr 实现搜索引擎 更新 3
现在完全没有错误。但由于某种原因,获取不起作用。只有在 urls/seed.txt 中指定的 url 才会被抓取和抓取。 nutch 后面没有外部链接。
[ec2-user@ip-172-31-16-137 apache-nutch-1.13]$ bin/crawl -i -D solr.server.url=http://35.160.82.191:8983/solr/nutch/ urls/ crawl 5 注入种子 URL /usr/local/apache-nutch-1.13/bin/nutch 注入 crawl/crawldb urls/ 喷油器:2017-05-19 12:27:19 开始 注入器: crawlDb: crawl/crawldb 注射器:urlDir:urls Injector:将注入的 url 转换为爬取数据库条目。 喷油器:覆盖:假 喷油器:更新:假 注射器:过滤器拒绝的网址总数:0 注入器:标准化和过滤后注入的总 url:1 注入器:注入但已在 CrawlDb 中的总 url:1 注入器:注入的新网址总数:0 喷油器:2017-05-19 12:27:21完成,经过:00:00:02 2017 年 5 月 19 日星期五 12:27:21 UTC:迭代 1 of 5 生成新段 /usr/local/apache-nutch-1.13/bin/nutch 生成 -D mapreduce.job.reduces=2 -D mapred.child.java.opts=-Xmx1000m -D mapreduce.reduce.speculative=false -D mapreduce.map .speculative=false -D mapreduce.map.output.compress=true crawl/crawldb crawl/segments -topN 50000 -numFetchers 1 -noFilter 发电机:开始于2017-05-19 12:27:23 生成器:选择要获取的得分最高的 url。 生成器:过滤:假 生成器:规范化:真 发电机:topN:50000 生成器:选择 0 条记录用于提取、退出... 生成返回 1(未创建新段) 转义循环:现在没有要获取的 URL
我想使用来自 Solr 的网络搜索结果的 nutch 数据 最终更新
[ec2-user@ip-172-31-16-137 apache-nutch-1.13]$ bin/crawl -i -D solr.server.url=://35.160.82.191:8983/solr/nutch/ urls/ crawl 1
【问题讨论】:
-
段目录已完成:crawl/segments/20170519074733。索引器:从 2017-05-19 07:52:41 开始索引器:删除已删除的文档:false 索引器:URL 过滤:false 索引器:URL 规范化:false
-
Active IndexWriters : ElasticIndexWriter elastic.cluster : 弹性前缀集群 elastic.host : 主机名 elastic.port : 端口 elastic.index : 弹性索引命令 elastic.max.bulk.docs : 弹性批量索引文档计数。 (默认 250) elastic.max.bulk.size :弹性批量索引长度(以字节为单位)。 (默认 2500500) elastic.exponential.backoff.millis :弹性批量指数退避初始延迟(以毫秒为单位)。 (默认 100) elastic.exponential.backoff.retries :弹性批量指数退避最大重试次数。 (默认 10)
-
错误运行:/usr/local/apache-nutch-1.13/bin/nutch index -Dsolr.server.url=35.160.82.191:8983/solr/#/nutch crawl/crawldb -linkdb crawl/linkdb crawl/segments/20170519074733 失败退出值为 255。
-
尽可能清理索引 /usr/local/apache-nutch-1.13/bin/nutch clean -Dsolr.server.url=://35.160.82.191:8983/solr/nutch/ crawl/ crawldb SolrIndexer:删除 2/2 个文档错误 CleaningJob:java.io.IOException:作业失败!在 org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:865) 在 org.apache.nutch.indexer.CleaningJob.delete(CleaningJob.java:174) 在 org.apache.nutch.indexer.CleaningJob.run (CleaningJob.java:197) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在 org.apache.nutch.indexer.CleaningJob.main(CleaningJob.java:208)