Ubuntu 15.10,12.04 安装Apache Nutch 2.3.1 并整合Apache Solr 4.10.4

Apache Nutch是一个用Java编写的开源网络爬虫。通过它,我们就能够自动地找到网页中的超链接,从而极大地减轻了维护工作的负担,例如检查那些已经断开了的链接,或是对所有已经访问过的网页创建一个副本以便用于搜索。接下来就是Apache Solr所要做的。Apache Solr是一个开源的全文搜索框架,通过Apache Solr我们能够搜索Apache Nutch已经访问过的网页。

Apache Nutch对于Apache Solr已经支持得很好,这大大简化了Apache Nutch与Apache Solr的整合。这也消除了过去依赖于Apache Tomcat来运行老的Nutch网络应用以及依赖于Apache Lucene来进行索引的麻烦。

目前官方2.x只提供了源码下载,不再提供编译发布版本,需要用户自己去编译。

请先参考Ubuntu 15.10,12.04 安装Apache Solr 4.10.4 安装Apache Solr。(注意,目前的Apache Nutch只能支持到Apache Solr 4.10.4版本,因此不能安装高于这个版本的Apache Solr,实验后确定目前不能使用高于这个版本的Apache Solr

然后参考Ubuntu 15.10,12.04 单机安装并配置Apache HBase安装HBase。

之后再进行后续的操作。

1.安装Java,并设置JAVA_HOME


建议在系统的环境变量中增加"JAVA_HOME"环境变量,也可以写在~/bashrc里面。

文件尾部增加

然后,重启机器。

2.下载并安装Nutch


3.编译Nutch


安装ant

配置Nutch需要使用的数据库,由于我们会与Apache Solr整合,因此需要配置Nutch编译的时候打开Apache Solr的支持。(目前测试情况来看,是无法配置成功使用org.apache.gora.solr.store.SolrStore作为存储后端的,只能是使用HBase作为存储后端)。

1.修改ivy/ivy.xml,设置可以使用的后端存储模块,可以多选,至于最后使用哪个存储模块,需要在conf/nutch-site.xml中指明。

找到如下信息:

找到如下:

去掉注释。

同时为了修复gora-hbase 0.6.1的BUG,需要在刚刚去掉注释的代码下面,增加如下一句:

2.配置conf/nutch-site.xml,指明需要的后端存储模块。

configuration字段中指明需要的后端存储类型(此处我们需要整合Solr,因此指定org.apache.gora.solr.store.SolrStore,具体配置的字符串,参考上面的conf/gora.properties中的gora.datastore.default字段),同时需要指明"http.agent.name"字段,否则运行时候会报错,没有设置"http.agent.name"。设置"plugin.includes"字段,否则在最后建立Solr索引的时候会报告"No IndexWriters activated - check your configuration"。

3.修改conf/gora.properties,打开需要的后端存储,单机情况下,一般默认即可,Apache Solr的监听端口,要根据自己机器的监听端口设置。

找到

最后一行增加:

4.修改ivy中配置的maven仓库地址,配置ivy/ivysettings.xml

找到如下代码:

把默认的maven中央库地址 http://repo1.maven.org/maven2/  替换成国内OSC提供的镜像:http://maven.oschina.net/content/groups/public/

编译Nutch,并下载依赖的Jar包

4.增加Nutch安装目录的环境变量${NUTCH_RUNTIME_HOME}


文件尾部增加

然后,重启机器。

5.检验Nutch安装


  • 运行"${NUTCH_RUNTIME_HOME}/bin/nutch"。如果您能看见下列内容说明您的安装是正确的:

一些解决问题的提示:

  • 如果您看见"Permission denied"那么请运行下列命令:

  • 如果您看见JAVA_HOME没有设置那么请设置JAVA_HOME环境变量。在Mac上,您可以运行下述命令或者把它添加到~/.bashrc里面去:

6.配置Apache Solr


1.备份需要修改的配置文件

2.复制Nutch运行目录下的schema.xml到我们设置的目录下。

3.重启Apache Solr

7.抓取您的第一个网站


  • 添加要抓取的URL(以自己的网站为例)

    seed.txt中添加需要抓取的地址:http://www.mobibrw.com/
  • 启动HBase

  • 使用如下命令进行网页的抓取(以百度为例)

    • ~/urls 是存放了种子url,也就是要抓取的网站地址的目录
    • StoreCrawl 是存放数据的根目录(在Nutch 2.x中,则表示crawlId,这会在HBase中创建一张以crawlId为前缀的表,例如StoreCrawl_Webpage
    • "http://localhost:9876/solr/collection1" Apache Solr的访问链接,此处注意,网页访问的链接是"http://localhost:9876/solr/#/collection1",但是Nutch上行数据的链接不可以有"#",否则会报告"Expected mime type application/octet-stream but got text/html"。
    • 2,numberOfRounds,迭代的次数,表明从根网页开始那应该被抓取的链接深度。

注意,如果执行sudo的话,一定要加-E参数,否则会导致提示找不到JAVA_HOME。原因是sudo出于安全原因,默认禁止环境变量输出到子进程中。

执行完成后,不应该出现任何的失败提示才对。

如果执行出错的话,详细的错误信息可以在${NUTCH_RUNTIME_HOME}/logs/hadoop.log中看到。

索引完成后,在Apache Solr中查询的结果如下图所示:

SolrNutch

参考链接


Ubuntu 15.10,12.04 安装Apache Solr 5.4.1

Apache Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。Apache Solr是一个独立的企业级搜索应用服务器,目前很多企业使用solr开源服务。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提 供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

Apache Solr最新的版本是5.4.1,Ubuntu 15.10 ,12.04上安装的步骤如下:

1.下载Apache Solr 5.4.1

 

2.解压缩服务安装脚本

3.执行安装脚本

4.检查服务是否正确安装

如果正确安装,会出现如下的提示信息:

4.创建Solr实例,可以创建多个实例,在这里我们只创建一个

请注意实例的结果输出:

这意味着,访问实例的URL链接为http://localhost:8983/solr,而不是默认的8080端口,一般如果8080端口被Tomcat7占据的情况下,Apache Solr作为一个服务独立安装的时候,会随机选择一个没有占有的端口,注意这个情况。

ApacheSolr

4.配置刚刚创建的Solr实例

ApacheSolrCoreSeletor

如上图,选择"Core Selector"

ApacheSolrCoreSeletorDocuments

可以这这个页面中"Document Type"下拉框用来选择提交,文件,XML,JSON等等,"Submit Document"按钮,可以提交需要分析的内容。

参考链接:
How To Install Apache Solr In Ubuntu