nutch 2.2.1 mysql_Nutch2.2.1 笔记二 : Nutch2.2.1 + Mysql 配置,调试

Nutch2.x 使用gora做数据抽象层,底层的数据存储可以支持Mysql,HBase,Cassandra等,而1.x是基于HDFS的。Nutch2.x官方推荐的是和HBase结合,不过这里我们先配置Nutch2.2.1和Mysql运行,因为Mysql查询起来更加直观,难度也稍微低那么一点,通过和mysql的结合成功对nutch的流程理解有很大帮助,最后记录和讨论一下nutch2.2.1 + Mysql的一些不足和我发现的一个bug

Nutch2.2.1 + Mysql 结合参考官网推荐的资料 : http://nlp.solutions.asia/?p=362,按里面所说安装,配置mysql并且建立数据库和表结构,如果你的mysql安装在其他机器上,比如windows上面或者其他linux机器上面,记得要设置mysql的远程连接,默认在linux上安装的mysql的远程连接是关闭的,方法有如下两步:

(1). vim /etc/mysql/my.conf 将[mysqld]下面的bind-address = 127.0.0.1给注释掉

(2). 进入mysql执行

grant all PRIVILEGES on *.* to root@'%' identified by '110';

操作完之后重启一下mysql:

sudo service mysql restart 或者 sudo /etc/init.d/mysql restart

接下来在STS里面配置nutch2.2.1 让它和mysql结合并成功运行

1.  选中项目右键Build Path --> Configure Build Path

将右边的多标签切换到Order and Export 选中conf 目录,点击右边的Top将其置到顶部,然后点击OK

9713cbd5a1ca8678a2850b4a17764dd2.png

2. 更改和Mysql存储相关的一些配置

我们选中项目右键新建一个文件夹叫urls,在urls文件夹里面新建一个名叫seeds.txt的File,在seeds.txt里面写入http://www.baidu.com/ 这个文件夹是作为nutch抓取的url链接种子文件夹

接下来找到ivy/ivy.xml文件,找到

default"/>

default"/>

将他们分别取消注释,找到

default"/>

将它修改为

default"/>

33c21dd87db20575e5e2aa95d41c18bb.png

修改完之后进入到项目重新执行ant eclipse,然后刷新项目

编辑conf/gora.properties,将原来的默认配置注释掉加入Mysql的相关信息

###############################

# MySQL properties #

###############################

gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver

gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true&useUnicode=true&autoReconnect=true

gora.sqlstore.jdbc.user=xxxxx

gora.sqlstore.jdbc.password=xxxxx

最终如下

a973ad8f2ca10359c5f7345735bd31d4.png

这是你想要连接的mysql的信息,如果是远程的mysql记得前面说到的开启远程连接

3. 配置conf/nutch-site.xml文件内相关信息

该文件可以配置的信息都是根据conf/nutch-default.xml里面的配置项来的,当在nutch-site.xml中配置了某些信息后,nutch在执行的时候会用这个文件里面的信息覆盖掉default.xml里面的信息,在conf/nutch.site.xml文件里面主要是配置nutch调优的一些参数,同时还有一些参数是必须要显示的配置的,这个文件里面的内容非常重要,我们在nutch-site.xml文件中添加如下配置

http.agent.name

YourNutchSpider

http.accept.language

ja-jp, en-us,en-gb,en,zh-cn,zh-tw;q=0.7,*;q=0.3

Value of the “Accept-Language” request header field.

This allows selecting non-English language as default one to retrieve.

It is a useful setting for search engines build for certain national group.

parser.character.encoding.default

utf-8

The character encoding to fall back to when no other information

is available

plugin.folders

src/plugin

Directories where nutch plugins are located. Each

element may be a relative or absolute path. If absolute, it is used

as is. If relative, it is searched for on the classpath.

storage.data.store.class

org.apache.gora.sql.store.SqlStore

The Gora DataStore class for storing and retrieving data.

Currently the following stores are available: ….

4. 运行Inject类测试是否成功配置和运行

执行src/java/org/apache/nutch/crawl/InjectorJob.java这个类该类的作用是将我们前面新建的那个urls目录当做爬虫抓取的的种子url注入到数据库中(这里我们配的是mysql,那么就会被注入到mysql中),如果不出意外应该可以成功在数据库里面看到有一条数据被写入了

右键执行InjectorJob.java类 RunAs--->RunConfigurations...

20eda19e98d7f6a61db6689e6b1a5ebe.png

这里最常见的一个错误是

x point org.apache.nutch.net.URLNormalizer not found

3048cbee430bd6927561ab4515a5229d.png

这个错误经常出现,原因就是nutch没有找到插件地址,如果是在编辑器里面运行的确保在conf/nutch.site.xml文件里边plugin.folders如下对应的值为src/plugin

plugin.folders

src/plugin

而且操作了前面流程的第一步,在命令行编译执行的要把这个值改为

plugin.folders

plugins

这个错误经常出现就是因为经常忘记改这个值了

下面一篇文章还是在Nutch + Mysql结合的情况下,开始介绍分析一下Nutch的流程,可能会写2到3篇之后对Nutch的大体流程有了基本了解之后,开始Nutch + HBase的配置讲解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值