a. 通过nutch,诞生了hadoop、tika、gora。
b. nutch通过ivy来进行依赖管理(1.2之后)。
c. nutch是使用svn进行源代码管理的。
d. lucene、nutch、hadoop,在搜索界相当有名。
e. ant构建之后,生成runtime文件夹,该文件夹下面有deploy和local文件夹,分别代表了nutch的两种 运行方式。
f. nutch和hadoop是通过什么连接起来的?通过nutch脚本。通过hadoop命令把apache-nutch-1.6.job提交 给hadoop的JobTracker。
g. nutch入门重点在于分析nutch脚本文件。
构建完成之后生成 data文件夹里有 crawldb, linkdb segmentsf。
crawldb 里都是url. 分current和old两个 子目录。
linkdb
segments下第爬一次都会生成一个文件夹,第一步由generator 生成 crawl_generate,第二步crawl_generate生成 content存 网页二进制源代码和crawl_fetch存每个url抓取网页状态,第二步生成 crawl_parse每个url的解析状态, parse_data存页面源数据,parse_text存页面文本。
apt-get install subversion
svn co https://svn.apache.org/repos/asf/nutch/tags/release-1.6/
cd release-1.6
apt-get install ant
ant
cd runtime/local
mkdir urls
vi urls/url.txt 例并输入http://blog.sina.cn
vi release-1.6/conf/nutch-site.xml 增加http.agent.name配置。
其中value 是自己的 user agent, 不知道user agent的可以在http的请求头里找到它。
图 2.1
http.agent.name
你的User Agent
zpy
然后重新Bulid 在release-1.6目录ant。
nohup bin/nutch crawl urls -dir data -depth 3 -threads 10 &
执行之后看nohup.out这个日至文件,有错误的改错误。
我的提示找不到java path. 我的java path是以单个用户配置, 执行的时候用了root,所以如果你的环境配置过了还提示path问题,可能是用户的原因。
nohup bin/nutch crawl urls -dir data -depth 1 -threads 10 &
好了,各种错误排除之后 , nohup.out里终于出现了nutch执行日至。
我们可以通过管道快捷查询nohup.out里的内容,查看各个功能执行的时间:
cat nohup.out | grep elapsed | grep Injector
cat nohup.out | grep elapsed | gep Generator
cat nohup.out | grep elapsed | grep Fetcher
cat nohup.out | grep elapsed | grep ParseSeqment
cat nohup.out | grep elapsed | grep Update
cat nohup.out | grep elapsed | grep LinkDb
crawldb
bin/nutch | grep read
bin/nutch readdb data/crawldb -stats
bin/nutch readdb data/crawldb -dump data/crawldb/crawldb_dump
bin/nutch readdb data/crawldb -url http://4008209999.tianyaclub.com/
bin/nutch readdb data/crawldb -topN 10 data/crawldb/crawldb_topN
bin/nutch readdb data/crawldb -topN 10 data/crawldb/crawldb_topN_m 1
segments
crawl_generate:
bin/nutch readseg -dump data/segments/20130325042858data/segments/20130325042858_dump -nocontent -nofetch -noparse -noparsedata –noparsetext
crawl_fetch:
bin/nutch readseg -dump data/segments/20130325042858 data/segments/20130325042858_dump-nocontent -nogenerate -noparse -noparsedata –noparsetext
content:
bin/nutch readseg -dump data/segments/20130325042858data/segments/20130325042858_dump -nofetch -nogenerate -noparse -noparsedata –noparsetext
crawl_parse:
bin/nutch readseg -dump data/segments/20130325042858data/segments/20130325042858_dump -nofetch -nogenerate -nocontent –noparsedata –noparsetext
parse_data:
bin/nutch readseg -dump data/segments/20130325042858data/segments/20130325042858_dump -nofetch -nogenerate -nocontent -noparse –noparsetext
parse_text:
bin/nutch readseg -dump data/segments/20130325042858data/segments/20130325042858_dump -nofetch -nogenerate -nocontent -noparse -noparsedata
全部:
bin/nutch readseg -dump data/segments/20130325042858data/segments/20130325042858_dump
segments
bin/nutch readseg -list -dir data/segments
bin/nutch readseg -list data/segments/20130325043023
bin/nutch readseg -get data/segments/20130325042858 http://blog.tianya.cn/
linkdb
bin/nutch readlinkdb data/linkdb -url http://4008209999.tianyaclub.com/
bin/nutch readlinkdb data/linkdb -dump data/linkdb_dump