MAC Nutch+MySQL集成笔记

  • 发表于
  • 周边

目的:Nutch爬虫引擎抓取的数据自动存入MySQL
隶属:Nutch+Hadoop+HBase(MySQL)+Elasticsearch+PHP 系列实践

MAC MySQL安装

不需要什么配置,就是next最后记住弹出的窗口里的密码就行,如:

mysql 默认密码

安装的时候忘记截图了,网上找了个配图。

下载地址:http://dev.mysql.com/downloads/mysql/

Nutch的安装与配置以及使用

1、Nutch-2.3.1下载:http://nutch.apache.org/downloads.html下载,然后解压至本地安装目录,如本地根目录为${NUTCH_HOME};

2、配置nutch对mysql的支持,修改${APACHE_NUTCH_HOME}/ivy/ivy.xml文件,分别:

1)找到以下行取消注释

2)修改以下行

默认为

修改后为

3)取消注释以下行

注释:上2)、3)如果不修改会有异常异常信息为

Exception in thread “main” Java.lang.ClassNotFoundException:org.apache.gora.sql.store.SqlStore

3、数据库连接配置

编辑${NUTCH_HOME}/conf/gora.properties文件,注释掉默认的数据库连接配置,同时添加以下配置内容:

写上你需要连接的数据库地址以及用户名密码

4、修改nutch-site配置文件

将以下内容添加至${NUTCH_HOME}/conf/nutch-site.xml中的configuration节点中

5、编译Nutch-2.3.1

  1. 进入${NUTCH_HOME}目录下执行ant命令:ant runtime
  2. 编译成功后${NUTCH_HOME}目录下会有runtime这个目录

编译Nutch

上面报错了,需要下载sonar的jar包(sonar-ant-task-2.2.jar),并将jar包放到解压好的apache-nutch-2.3.1文件夹内的lib文件内内。由于需要连接网络下载资源,需要一些时间,根据网络情况时间不等,我自己用了大概一小时!

然后命令行执行:

再执行

OK,没再出错,编译成功,目录下多出:build、runtime两个文件夹,其中runtime就是编译好的目录。

6、网页抓取以及配置

  1. 进入${NUTCH_HOME}/runtime/local目录下
  2. 设置抓取的网站

执行命令

Error: JAVA_HOME is not set.

提示JAVA_HOME未设置

MAC OS X El Capitan 10.11.6 查找和设置$JAVA_HOME,命令如下

Command crawl is deprecated, please use bin/crawl instead

当执行bin/nutch crawl urls -depth 3 -topN 5时显示这个错误,经查资料发现是因为Nutch2.3.1不支持这么写了。

1.7和2.2.1及以上版本用bin/crawl取代bin/nutch crawl.正确的写法:

好了,能执行了,但问题又出现:

崩溃的感觉,再查发现答案是,Nutch2.3.1不支持MySQL,What………………

解决方法是:

  1. 要么使用2.2x版本,要么退回使用nutch1.x版本
  2. 或者更换MySQL为hbase存储

显示我的选择是,放弃nutch2.3.1使用nutch2.2.1。浪费我大量时间!

如出现下面的错误,请搜索本文“特别添加”来解决。

nutch2.2.1成功

nutch2.2.1的安装及配置和上面一样,其中细节版本号错误等看错误信息修正就行,最后成功。

nutch命令前面章节介绍到了执行完在mysql中即查看到爬虫抓取的内容,如下图:

nutch安装