[Linux] Nutch 2.3.1+ Hbase + Hadoop + Solr 单机指南(四)

释放双眼,带上耳机,听听看~!

这是本指南的最后一篇,从开始做到完成,本熊花了一周的时间,碰到的错误也可谓千奇百怪。


纯初学者说明模式
本章节主讲实现本地模式

  • Nutch的配置与编译
  • Nutch与Hadoop,Hbase,Solr的集成
  • Nutch的启动与结果查看

0.初期设置说明

路径说明

本熊假设Hadoop的主目录为HadoopPath,Hbase的主目录为HbasePath,Nutch的主目录为NutchPath,Solr的主目录为SolrPath

以下是本熊的解压位置:
HadoopPath的值就是 /usr/Dzy/hadoop-2.5.2
HbasePath的值就是 /usr/Dzy/hbase-0.98.8-hadoop2
NutchPath的值就是 /usr/Dzy/apache-nutch-2.3.1
SolrPath的值就是 /home/as/下载/solr-4.10.3

各位可以按照自己的路径进行设置,本熊再次只为说明方便

使用版本说明

就如同本熊在第一期中提到的,要选择正确的相互适应兼容的版本,会帮您省去大堆不必要的麻烦,减少脱发,改善睡眠,提高生活质量

  • Apache Nutch 2.3.1
  • Apache Hadoop 1.2.1 and 2.5.2
  • Apache HBase 0.98.8-hadoop2 (although also tested with 1.X)
  • Apache Solr 4.10.3
  • Apache Tomcat(可选,版本随意,用于集成solr)

1.Nutch的配置与编译

此处的配置只在local模式中测试成功,deploy模式还未进行测试

  • 在NutchPath目录下,把/ivy文件夹中修改ivy.xml文件,将以下内容的注释取消(将包含此代码段开头 <!–的和结尾的–>消除即可)


1
2
3
1    &lt;dependency org=&quot;org.apache.gora&quot; name=&quot;gora-hbase&quot; rev=&quot;0.6.1&quot; conf=&quot;*-&gt;default&quot; /&gt;
2
3

这是将Nutch的默认的结果存储方式变更为Hbase

  • 在NutchPath目录下,把/conf文件夹中修改nutch-site.xml

文件,在<configuration></configuration>标签中添加以下设置


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1        &lt;property&gt;  
2        &lt;name&gt;storage.data.store.class&lt;/name&gt;  
3        &lt;value&gt;org.apache.gora.hbase.store.HBaseStore&lt;/value&gt;  
4        &lt;description&gt;Default class for storing data&lt;/description&gt;  
5        &lt;/property&gt;  
6       &lt;property&gt;  
7        &lt;name&gt;http.agent.name&lt;/name&gt;  
8        &lt;value&gt;My Nutch Spider&lt;/value&gt;  
9        &lt;/property&gt;  
10    &lt;property&gt;
11      &lt;name&gt;plugin.includes&lt;/name&gt;
12     &lt;value&gt;protocol-http|urlfilter-regex|parse-(html|tika)|index-(basic|anchor)|urlnormalizer-(pass|regex|basic)|scoring-opic|index-anchor|index-more|languageidentifier|subcollection|feed|creativecommons|tld&lt;/value&gt;
13     &lt;description&gt;Regular expression naming plugin directory names to
14      include.  Any plugin not matching this expression is excluded.
15      In any case you need at least include the nutch-extensionpoints plugin. By
16      default Nutch includes crawling just HTML and plain text via HTTP,
17      and basic indexing and search plugins. In order to use HTTPS please enable
18      protocol-httpclient, but be aware of possible intermittent problems with the
19      underlying commons-httpclient library.
20      &lt;/description&gt;
21    &lt;/property&gt;
22
23

这三个property分别指的是Nutch的默认存储类型,爬虫的名字,和插件库的位置,如果错误中出现job-XXXXX的情况,那就是没有配置好插件库property

  • 在相同目录下,修改regex-urlfilter.txt,将最后部分修改为


1
2
3
4
5
1# accept anything else
2#+.
3+^http://([a-z0-9]*\.)*nutch.apache.org/
4
5

这里写的是抓取过滤的正则表达式,各位可以按各自所需修改

  • 网上有些说也要修改nutch-default.xml,其实没有这个必要,若在nutch-site.xml存在配置,会优先选择其中的属性

  • 在相同目录下修改gora.properties文件,添加以下配置,确保存储在Hbase上

gora.datastore.default=org.apache.gora.hbase.store.HBaseStore

  • 在NutchPath目录下,在/usr/Dzy/apache-nutch-2.3.1/runtime/local/文件下创建urls文件夹

  • urls文件夹中创建seed.txt,在其中输入


1
2
3
1http://nutch.apache.org/
2
3

这里存放的是Nutch要爬取的网页

  • 在NutchPath路径下,启动终端,输入以下命令,开始Ant编译


1
2
3
1ant runtime
2
3

编译完成后目录结构是这样的,多出来一个runtime

  • 最后一步就是,将Nutch数据保存到Hbase的jar包存到local内

HadoopPath下/lib中所有与hbase有关的jar包
复制到NutchPath目录下的/runtime/local/lib中

至此Nutch的准备工作就算完成了


2.Nutch启动

如果一步不差的完成了本熊指南前三期的准备工作,那就接下来就是按顺序启动服务了
* 启动Solr
在TomcatPath目录下执行以下命令,启动Solr


1
2
3
1    bash startup.sh
2
3

* 启动Hadoop
在HadoopPath下,在终端输入以下命令,启动Hadoop


1
2
3
1    bash ./sbin/start-all.sh
2
3

* 启动Hbase
在HbasePath目录下,启动终端输入


1
2
3
1    bash ./bin/start-hbase.sh
2
3
  • 启动Nutch

在NutchPath下,输入以下指令


1
2
3
4
1cd /usr/Dzy/apache-nutch-2.3.1/runtime/local
2./bin/crawl /usr/Dzy/apache-nutch-2.3.1/runtime/local/urls NutchTable http://localhost:8080/solr/collection1 2
3
4

这段指令的参数的意义:
urls位置—
*/usr/Dzy/apache-nutch- 2.3.1/runtime/local/urls *
Hbase中创建的表名—
NutchTable
SolrCore的位置—
http://localhost:8080/solr/collection1
迭代次数—
2
以上参数可以按照自己的需要调整,可以参考Apache Nutch的说明文档

  • 如果一切OK的话,会出现以下状态,如果injectjob时间极长时可以检查一下Hbase版本配置

  • 最后参照之前的关于solr步骤与Hbase的步骤,可以在solr中看见查询的结果

local实验完成,这个实验只是简单的单机配置,若想要更加深入的了解Nutch的工作原理,可以在ant编译部分输入以下指令


1
2
3
1    ant eclipse
2
3

这样可以在eclipse中加载Nutch项目,可以在这基础上做更贴近开发者自身想法的改进


第四期结束

到此为止,本熊把全部的实验过程都记录了下来,后在小Y的电脑上也试验成功了。累得本熊玩了好几天,但是本熊也很好奇,如何转化这些抓取的资源呢?也许这是向小Y这样的学术派才会考虑的问题,本熊只是俗熊,常常苦恼在三餐选什么,总之愿本文能对各位起到小小的帮助


相关内容
[Linux] Nutch 2.3.1+ Hbase + Hadoop + Solr 单机指南(一)
[Linux] Nutch 2.3.1+ Hbase + Hadoop + Solr 单机指南(二)
[Linux] Nutch 2.3.1+ Hbase + Hadoop + Solr 单机指南(三)
[Linux] Nutch 2.3.1+ Hbase + Hadoop + Solr 单机指南(四)

给TA打赏
共{{data.count}}人
人已打赏
安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

安全运维

设计模式的设计原则

2021-12-12 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索