eclipse中调试nutch2.0+cassandra
来源:互联网 发布:罗马人的故事版本 知乎 编辑:程序博客网 时间:2024/05/16 18:35
很早官方就开始了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依赖
<dependency> <groupId>org.apache.gora</groupId> <artifactId>gora-core</artifactId> <version>0.2</version> <optional>true</optional> </dependency> <dependency> <groupId>org.apache.gora</groupId> <artifactId>gora-cassandra</artifactId> <version>0.2</version> <optional>true</optional> </dependency><!-- html parser dependency --><dependency><groupId>net.sourceforge.nekohtml</groupId><artifactId>nekohtml</artifactId><version>1.9.15</version></dependency><dependency><groupId>org.ccil.cowan.tagsoup</groupId><artifactId>tagsoup</artifactId><version>1.2</version></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随你输):
<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>http.agent.name</name><value>your agent name</value></property><property><name>http.agent.description</name><value>escription</value></property><property><name>http.agent.url</name><value>your http agent url</value></property><property><name>http.agent.email</name><value>your http agent email</value></property><property> <name>storage.data.store.class</name> <value>org.apache.gora.cassandra.store.CassandraStore</value> <description>设置gora存储层的实现类,可以设置成如下参数: 关系型数据库:org.apache.gora.sql.store.SqlStore cassandra:org.apache.gora.cassandra.store.CassandraStore habse:org.apache.gora.hbase.store.HBaseStore Accumulo:org.apache.gora.hbase.store.AccumuloStore Avro:org.apache.gora.hbase.store.AvroStore 文件形式 :org.apache.gora.hbase.store.DataFileAvroStore 放在内存:org.apache.gora.hbase.store.MemStore </description></property></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://www.searchtech.pro/articles/2013/02/18/1361191389790.html
- eclipse中调试nutch2.0+cassandra
- nutch2.0+cassandra中文网页乱码问题
- eclipse上调试cassandra
- eclipse中启动cassandra
- 在Eclipse中运行Nutch2.3
- 在Eclipse中运行Nutch2.3
- 在ECLIPSE中开发CASSANDRA
- Eclipse加载Nutch2.1
- Nutch2.X In Eclipse
- Nutch2.2.1+Eclipse+Mysql
- windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤
- 在eclipse中配置Nutch2.2.1, Windows环境下(Linux流程一样)
- idea调试、运行Cassandra
- cassandra eclipse 环境构建
- windows上Nutch2.3.1导入Eclipse详解
- Eclipse中调试Servlet
- Eclipse中调试Websphere
- eclipse中logcat调试
- php,你可能不知道的“死亡”陷阱
- java代理
- 硬盘接口简介
- 随机生成十个不重复的整数
- 带参数的响应函数
- eclipse中调试nutch2.0+cassandra
- Hadoop in Action Note
- SATA是串口为何速度比IDE并口还快?
- 随机生成10个整数
- DIRECTOR的几个小函数
- Java 东芝B-SX5T打印机小结
- Android中播放声音的两种方法
- java中的==和===
- delphi 实现两个exe文件共享内存映像的代码