官方的教程很坑爹,网上的教程也很少,版本扑朔迷离,很可能会因为版本不一致出各种奇葩问题,记录下我的部署过程。
nutch:1.14
solr:6.6
安装
yum install docker -y
#docker安装solr
docker pull previousnext/solr4
docer run --name solr -it -p 8983:8983 previousnext/solr4
#浏览器访问http://127.0.0.1:8983/solr/
# 拉取最新版镜像1.14
docker pull apache/nutch
#启动nutch并进入shell
docker run -it-d --name nutch apache/nutch /bin/bash
cd nutch_source/runtime/local
#配置nutch-site.xml,添加属性
<property>
<name>http.agent.name</name>
<value>My Nutch Spider</value>
</property>
快速测试
bin/nutch parsechecker -dumpText https://www.213.name > 213.txt
cat 213.txt
一键抓取
bin/crawl -i -D solr.server.url=http://ssr.213.name:8983/solr/ -s urls/ testCrawl/ 2
分步骤抓取
抓取流程:
inject->generate->fetch->parse->updatedb->invertlinks->index
↑______________________↓
#创建种子url
mkdir urls
touch urls/seed.txt
echo "https:213.name" >> seed.txt
#将URL列表注入到crawldb中
bin/nutch inject data/crawldb urls
#生成抓取列表
#为了抓取指定URL的页面,我们需要先从数据库(crawldb)里生成一个抓取列表:
bin/nutch generate data/crawldb data/segments
#开始抓取
bin/nutch fetch data/segments/xxx
#解析
bin/nutch parse data/segments/xxx
#根据抓取的结果更新数据库:
bin/nutch updatedb data/crawldb –dir data/segments/xxx
#反转链接,在建立索引之前,我们首先对所有的链接进行反转,这样我们才可以对页面的来源锚文本进行索引。
bin/nutch invertlinks data/linkdb –dir data/segments
#将抓取到的数据加入Solr索引
bin/nutch index -Dsolr.server.url=http://ssr.213.name:8983/solr data/crawldb/ -linkdb data/linkdb -dir data/segments
_ 附: _
官方教程
https://wiki.apache.org/nutch/NutchTutorial
你好,我按照你写的配置,nutch连不上我配置的solr,报错:
Failed to commit solr connection: Server refused connection at: http://localhost:8983/solr/nutch
是不是solr也要修改什么配置?