使用docker快速部署apache nutch 1.14+solr

官方的教程很坑爹,网上的教程也很少,版本扑朔迷离,很可能会因为版本不一致出各种奇葩问题,记录下我的部署过程。
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

发表评论

[/0o0] [..^v^..] [0_0] [T.T] [=3-❤] [❤.❤] [^v^] [-.0] [!- -] [=x=] [→_→] [><] 更多 »
昵称

抢沙发~