现在的位置: 首页 > 综合 > 正文

Nutch学习与安装

2018年04月13日 ⁄ 综合 ⁄ 共 2711字 ⁄ 字号 评论关闭

1,apache nutch

官方说明:

Apache的Nutch是一个开源Java编写的网络爬虫。通过它,我们可以自动的抓取网络上的链接,减少大量的维护工作,比如:检查环链,死链,并且把抓取到的网页存到硬盘上,这也是引入Apache Solr的原因。Solr是一个开源的全文搜索框架,在Solr中,我们可以搜索Nutch抓取下来的网页。幸运的是, Nutch和Solr中之间的整合是非常简单的。

百度百科:

Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。

尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降. 并且这很有可能进一步演变成为一个公司垄断了几乎所有的web搜索为其谋取商业利益.这显然不利于广大Internet用户.

Nutch为我们提供了这样一个不同的选择. 相对于那些商用的搜索引擎, Nutch作为开放源代码搜索引擎将会更加透明, 从而更值得大家信赖. 现在所有主要的搜索引擎都采用私有的排序算法, 而不会解释为什么一个网页会排在一个特定的位置. 除此之外, 有的搜索引擎依照网站所付的费用, 而不是根据它们本身的价值进行排序. 与它们不同, Nucth没有什么需要隐瞒, 也没有动机去扭曲搜索的结果. Nutch将尽自己最大的努力为用户提供最好的搜索结果。

Nutch必须能够做到:

Nutch 致力于让每个人能很容易, 同时花费很少就可以配置世界一流的Web搜索引擎. 为了完成这一宏伟的目标, Nutch必须能够做到:

* 每个月取几十亿网页

* 为这些网页维护一个索引

* 对索引文件进行每秒上千次的搜索

* 提供高质量的搜索结果

* 以最小的成本运作

2,nutch相关技术

从 nutch0.8.0开始,Nutch 完全构建在 Hadoop 分布式计算平台之上。Hadoop 除了是一个分布式文件系统外,还实现了 Google 的 GFS 和 MapReduce 算法。因此基于 Hadoop 的 Nutch 搜索引擎可以部署在由成千上万计算机组成的大型集群上。

Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。nutch抓取的内容通过Lucene建立索引,然后通过solr提供搜索服务。

3,nutch的工作流程

1. 创建一个新的WebDb (admin db -create).

2. 将抓取起始URLs写入WebDB中 (inject).

3. 根据WebDB生成fetchlist并写入相应的segment(generate).

4. 根据fetchlist中的URL抓取网页 (fetch).

5. 根据抓取网页更新WebDb (updatedb).

6. 循环进行3-5步直至预先设定的抓取深度。

7. 根据WebDB得到的网页评分和links更新segments (updatesegs).

8. 对所抓取的网页进行索引(index).

9. 在索引中丢弃有重复内容的网页和重复的URLs (dedup).

10. 将segments中的索引进行合并生成用于检索的最终index(merge).

4,部署运行nutch

1,下载nutch 的二进制包http://www.apache.org/dyn/closer.cgi/nutch/

apache-nutch-1.7-bin.tar.gz

2,配置java环境

#set nutch environment
export NUTCH_HOME=/home/hadoop/nutch
export CLASSPATH=$NUTCH_HOME/lib:$CLASSPATH
export PATH=$NUTCH_HOME/bin:$PATH

配置完,执行source /etc/profile 立即生效

3,运行nutch

假如提示错误,有可能是权限问题:这样解决chmod +x bin/nutch,

也有可能是java环境问题

4.如下修改conf/nutch-site.xml文件

<property>
 <name>http.agent.name</name>
 <value>My Nutch Spider</value>
</property>

5.新建文件夹urls,(/home/hadoop),在urls中新建url.txt文件,写上你开始抓取的网址url,例如:

http://nutch.apache.org/

6.编辑文件conf/regex-urlfilter.txt

修改过滤器,文件里有简要的修改说明

这里可以把+.这一行替换为

+^http://([a-z0-9]*\.)*nutch.apache.org/

行首的+号表示匹配后面跟的正则表达式,则加入的抓取列表;行首为-号表示匹配后面跟的正则,就不抓取。

7.现在执行 bin/nutch crawl urls -dir crawl -depth 3 -topN 5

第一个参数carwl:执行crawl命令抓取

第二个参数urls :首次注入crawlDB的url文件所在目录

第三个参数-dir crawl:生成的crawlDB放在carwl文件夹里

第四个参数-depth 3:抓取深度为3

第五个参数-topN 5:抓取前五个url

执行完之后多了这几个文件夹crawl/crawldb ,crawl/linkdb ,crawl/segments

8.使用solr为刚刚抓取的结果简历索引,并提供搜索服务

下载solr:http://www.apache.org/dyn/closer.cgi/lucene/solr/

下载的时候千万注意要下载最新版,最新的在最下面

解压,进入example目录,执行java -jar start.jar

访问http://localhost:8983/solr/admin/ 或者 http://localhost:8983/solr/admin/stats.jsp 检查solr是否安装正确

把nutch运行目录下的/conf/schema.xml文件拷贝到solr中/example/solr/conf/里面

重启solr

运行:

bin/nutch solrindex http://127.0.0.1:8983/solr/ crawldb -linkdb crawldb/linkdb crawldb/segments/*

这样就可以在http://localhost:8983/solr/admin/ 页面对刚刚抓取的内容进行搜索了

9.如果一开始就安装好solr,在solr启动的情况下,第七步执行这个命令就能直接建立索引

bin/nutch solrindex http://127.0.0.1:8983/solr/ crawldb -linkdb crawldb/linkdb crawldb/segments/*

抱歉!评论已关闭.