分享

Nutch 2.3.1 Hbase Hadoop Solr 整合(四)Nutch安装


问题导读

1.Nutch如何配置与编译?
2.启动Nutch需要做哪些准备?
3.你认为整合Nutch需要哪些工作?







纯初学者说明模式
本章节主讲实现本地模式
  • Nutch的配置与编译
  • Nutch与Hadoop,Hbase,Solr的集成
  • Nutch的启动与结果查看


0.初期设置说明
路径说明
本熊假设Hadoop的主目录为HadoopPath,Hbase的主目录为HbasePath,Nutch的主目录为NutchPath,Solr的主目录为SolrPath


[mw_shl_code=bash,true]以下是本熊的解压位置:
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
[/mw_shl_code]

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

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

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文件,将以下内容的注释取消(将包含此代码段开头  <!--的和结尾的-->消除即可)

[mw_shl_code=bash,true]      <dependency org="org.apache.gora" name="gora-hbase" rev="0.6.1" conf="*->default" />
[/mw_shl_code]

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

在NutchPath目录下,把/conf文件夹中修改nutch-site.xml
文件,在<configuration></configuration>标签中添加以下设置

[mw_shl_code=bash,true]<property>  
          <name>storage.data.store.class</name>  
          <value>org.apache.gora.hbase.store.HBaseStore</value>  
          <description>Default class for storing data</description>  
          </property>  
         <property>  
          <name>http.agent.name</name>  
          <value>My Nutch Spider</value>  
          </property>  
      <property>
        <name>plugin.includes</name>
       <value>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</value>
       <description>Regular expression naming plugin directory names to
        include.  Any plugin not matching this expression is excluded.
        In any case you need at least include the nutch-extensionpoints plugin. By
        default Nutch includes crawling just HTML and plain text via HTTP,
        and basic indexing and search plugins. In order to use HTTPS please enable
        protocol-httpclient, but be aware of possible intermittent problems with the
        underlying commons-httpclient library.
        </description>
      </property>[/mw_shl_code]

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

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

[mw_shl_code=bash,true] # accept anything else
  #+.
  +^http://([a-z0-9]*\.)*nutch.apache.org/[/mw_shl_code]

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


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

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

[mw_shl_code=bash,true]  gora.datastore.default=org.apache.gora.hbase.store.HBaseStore
[/mw_shl_code]

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

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


[mw_shl_code=bash,true]  http://nutch.apache.org/
[/mw_shl_code]

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

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


[mw_shl_code=bash,true]  ant runtime
[/mw_shl_code]
编译完成后目录结构是这样的,多出来一个runtime


4.png


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

[mw_shl_code=bash,true]  HadoopPath下`/lib`中所有与hbase有关的jar包
      复制到NutchPath目录下的`/runtime/local/lib`中[/mw_shl_code]


5.png

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


2.Nutch启动
如果一步不差的完成了本熊指南前三期的准备工作,那就接下来就是按顺序启动服务了

启动Solr
在TomcatPath目录下执行以下命令,启动Solr

[mw_shl_code=bash,true]  bash startup.sh
[/mw_shl_code]

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


[mw_shl_code=bash,true]  bash ./sbin/start-all.sh
[/mw_shl_code]

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

[mw_shl_code=bash,true]  bash ./bin/start-hbase.sh
[/mw_shl_code]

启动Nutch
在NutchPath下,输入以下指令

[mw_shl_code=bash,true]  cd /usr/Dzy/apache-nutch-2.3.1/runtime/local
  ./bin/crawl /usr/Dzy/apache-nutch-2.3.1/runtime/local/urls NutchTable http://localhost:8080/solr/collection1 2
[/mw_shl_code]

这段指令的参数的意义:
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版本配置




6.png

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


7.png



local实验完成,这个实验只是简单的单机配置,若想要更加深入的了解Nutch的工作原理,可以在ant编译部分输入以下指令
这样可以在eclipse中加载Nutch项目,可以在这基础上做更贴近开发者自身想法的改进





文/甜甜圈短短尾(简书作者)
原文链接:http://www.jianshu.com/p/813d3ded87bb
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。




没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条