eclipse中调试nutch2.0+cassandra

eclipse中调试nutch2.0+cassandra

分类: Nutch 搜索引擎 Cassandra

学习nutch首先我们需要下载它的源码,然后导入eclipse使其能够先跑起来,下文是引用了一个博友整理的导入eclipse的方法:(代码来自GitHub)      

  很早官方就开始了nutch2.0的研发,而一直都是两线同时研发的,一个是普通版,一个是gora版本,也就是nutch2.0。下面介绍下怎样把项目导进eclipse中,这里我们的存储层使用nosql cassandra,本来想先使用mysql试试,发现启动不了爬虫,调试下发现原来还没有完全实现gora的sql数据库的存储功能,所以选择易用的cassandra作为测试。

需要知识:nutch基本知识,cassandra基本知识,用maven管理项目,用git管理下载项目。

需要工具:安装有maven插件的eclipse(插件可以通过eclipse的market place下载)

1.下载导入项目

       先从https://github.com/apache/nutch/tree/release-2.0把nutch2.0项目下载下来(windows点zip按钮会打包下载)

eclipse中把项目导进去(file-import-maven-existing maven project)

2.添加依赖

       导进去后src/java和src/test已经是源文件目录了,还必须把

/conf

/src/plugin/protocol-httpclient/src/java

/src/plugin/urlfilter-domain/src/java

/src/plugin/lib-http/src/java

/src/plugin/protocol-http/src/java

/src/plugin/urlfilter-suffix/src/java

/src/plugin/urlfilter-regex/src/java

/src/plugin/lib-regex-filter/src/java

/src/plugin/urlnormalizer-basic/src/java

/src/plugin/urlnormalizer-pass

/src/javasrc/plugin/urlnormalizer-regex/src/java

/src/plugin/scoring-opic/src/java

/src/plugin/parse-html/src/java

这些基本插件添加到classpath中,parse-html还需要用到额外的jar包,

还要nekohtml、tagsoup这两个jar包我们在下面的pom中添加。

3.添加额外的jar包到pom文件

       添加下面依赖到pom.xml文件,去掉原有的gora-core和gora-sql依赖

[html]  view plain copy
  1. <dependency>  
  2.                        <groupId>org.apache.gora</groupId>  
  3.                        <artifactId>gora-core</artifactId>  
  4.                        <version>0.2</version>  
  5.                        <optional>true</optional>  
  6.                </dependency>               
  7.                 
  8.                <dependency>  
  9.                        <groupId>org.apache.gora</groupId>  
  10.                        <artifactId>gora-cassandra</artifactId>  
  11.                        <version>0.2</version>  
  12.                        <optional>true</optional>  
  13.                </dependency>  
  14.               
  15.             <!-- html parser dependency -->  
  16.             <dependency>  
  17.                 <groupId>net.sourceforge.nekohtml</groupId>  
  18.                 <artifactId>nekohtml</artifactId>  
  19.                 <version>1.9.15</version>  
  20.             </dependency>  
  21.             <dependency>  
  22.                 <groupId>org.ccil.cowan.tagsoup</groupId>  
  23.                 <artifactId>tagsoup</artifactId>  
  24.                 <version>1.2</version>  
  25.             </dependency>  

如果下载不了gora的包,可以到http://gora.apache.org/releases.html#Download下载后放到maven仓库。

4.修改配置文件

       把conf目录下带template结尾的文件都去掉template,如nutch-site.xml.template改成nutch-site.xml以防有些插件运行时找不到配置文件。

       修改conf下的nutch-site.xml添加一下设置(里面的value随你输):

[html]  view plain copy
  1. <?xml version="1.0"?>  
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  3.   
  4. <configuration>  
  5.     <property>  
  6.         <name>http.agent.name</name>  
  7.         <value>your agent name</value>  
  8.     </property>  
  9.   
  10.     <property>  
  11.         <name>http.agent.description</name>  
  12.         <value>escription</value>  
  13.     </property>  
  14.   
  15.     <property>  
  16.         <name>http.agent.url</name>  
  17.         <value>your http agent url</value>  
  18.     </property>  
  19.   
  20.     <property>  
  21.         <name>http.agent.email</name>  
  22.         <value>your http agent email</value>  
  23.     </property>  
  24.     <property>  
  25.       <name>storage.data.store.class</name>  
  26.       <value>org.apache.gora.cassandra.store.CassandraStore</value>  
  27.       <description>设置gora存储层的实现类,可以设置成如下参数:  
  28.       关系型数据库:org.apache.gora.sql.store.SqlStore          
  29.       cassandra:org.apache.gora.cassandra.store.CassandraStore        
  30.       habse:org.apache.gora.hbase.store.HBaseStore        
  31.       Accumulo:org.apache.gora.hbase.store.AccumuloStore          
  32.       Avro:org.apache.gora.hbase.store.AvroStore         
  33.       文件形式  :org.apache.gora.hbase.store.DataFileAvroStore        
  34.       放在内存:org.apache.gora.hbase.store.MemStore  
  35.       </description>  
  36.     </property>  
  37. </configuration>  


修改conf下的/nutch/conf/gora.properties

注释掉关系数据库的配置信息:

#gora.sqlstore.jdbc.driver=org.hsqldb.jdbc.JDBCDriver
#gora.sqlstore.jdbc.url=jdbc:hsqldb://localhost/test
#gora.sqlstore.jdbc.user=sa
#gora.sqlstore.jdbc.password=

把gora.cassandrastore.servers=localhost:9160这行的注释去掉,表明使用cassandra作为存储层

5.启动cassandra

       启动cassandra,cassandra的启动参考:http://blog.csdn.net/laigood12345/article/details/6568409,我用的是1.01版本的cassandra。

6.执行爬虫

       在根目录下建立个urls文件夹,在文件夹下新建个txt文档,随便输入几个网站,如:http://www.163.com/,一行一个网站

       最后用java application运行/nutch/src/java/org/apache/nutch/crawl/Crawler.java 参数:urls -depth 2 爬虫就执行起来,爬取的网页会保存到cassandra中。

       索引nutch2.0和nutch1.3+一样,都是使用solr作为搜索程序,所以用法和nutch1.3+的一样,这里就不介绍了,用惯了elasticsearch,现在真心觉得solr太麻烦,配都懒得配个出来调试了,直接改源码,添加nutch文档索引到elasticsearch的方法。


原文地址:http://blog.csdn.net/laigood12345/article/details/7625862

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值