首先,参考笨小葱之前的博客,完成mysql的安装和nutch2.x的安装编译。然后,修改一些配置就可以完成集成工作啦

MySQL配置

1.my.cnf配置

分别在[client]、[mysql]下添加“default-character-set=utf8”;

在[mysqld]下添加:character-set-server=utf8

权限授予

mysql –u root –p xxxx

GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY  "xxxx";

创建数据库与表

手动创建数据库nutch和数据表webpage【如果不想用默认的库名和表名也可在nutch安装后的相关配置文件中进行修改,见后续说明】,其中webpage的表结构如下:

CREATE TABLE `webpage` (

`id` varchar(767) CHARACTER SET latin1 NOT NULL,

`headers` blob,

`text` mediumtext,

`status` int(11) DEFAULT NULL,

`markers` blob,

`parseStatus` blob,

`modifiedTime` bigint(20) DEFAULT NULL,

`score` float DEFAULT NULL,

`typ` varchar(32) CHARACTER SET latin1 DEFAULT NULL,

`baseUrl` varchar(512) CHARACTER SET latin1 DEFAULT NULL,

`content` mediumblob,

`title` varchar(2048) DEFAULT NULL,

`reprUrl` varchar(512) CHARACTER SET latin1 DEFAULT NULL,

`fetchInterval` int(11) DEFAULT NULL,

`prevFetchTime` bigint(20) DEFAULT NULL,

`inlinks` mediumblob,

`prevSignature` blob,

`outlinks` mediumblob,

`fetchTime` bigint(20) DEFAULT NULL,

`retriesSinceFetch` int(11) DEFAULT NULL,

`protocolStatus` blob,

`signature` blob,

`metadata` blob,

`batchId` varchar(500) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这里如果报错字段指定的值过大,那么把大于255的值改成255就可以。这是因为utf8编码的字符大小限制。

NUTCH2.x配置

注意如果你集成的是nutch2.3,那么你在测试数据爬取的时候可能会碰到这个错误。

这是由于avro这个架包冲突了。2.3中对gora-sql的支持需要用到avro-1.3.3.jar而gora需要avro-1.7.6.jar的支持。所以在配置完nutch对mysql的支持后,运行测试网站爬取时会出这个错。你可以在$nutch_home/runtime/lib下面看看是否同时存在这两个架包。(这里笨小葱试着去掉一个架包,但是会报其他错误。试了好久也没有解决这个问题。希望大牛能够指点一下该如何做0.0)

由于工作任务要尽快完成,所以暂时先用了nutch2.2.1版本。这里如果不清楚怎么下载之前的版本的话,请看下面的截图。登陆到nutch官网下载页面:http://nutch.apache.org/downloads.html。

往下拉,找到这个超链接,里面就是历届nutch版本啦。

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

l将以下行的注释取消

default”/>

l修改以下行

从默认的,改成

l将以下行的注释取消

注:上述第2和第3项,如果按默认的不做修改,将会在抓取网页时遇到以下错误。

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

3)      数据库连接配置

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

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

#Default MySQL properties        #

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

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

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

gora.sqlstore.jdbc.user=xxxx(MySQL用户名)

gora.sqlstore.jdbc.password=xxxx(MySQL密码)

修改nutch-site配置文件

我的做法是直接将nutch-default文件另存为nutch-site,然后修改nutch-site内容,包括:

l添加http.agent.name的值

http.agent.name

YourNutchSpider

l在文件末尾添加以下内容

http.accept.language

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

Value of theAccept-Language request header field.

This allows selecting non-Englishlanguage as default one to retrieve.

It is a useful setting for search enginesbuild for certain national group.

storage.data.store.class

org.apache.gora.sql.store.SqlStore

TheGora DataStore class for storing and retrieving data.

Currently the following stores areavailable:.

parser.character.encoding.default

utf-8

Thecharacter encoding to fall back to when no other information

isavailable

l特别添加以下内容

generate.batch.id

*

如果不添加此项内容,则通过”bin/nutch crawl urls –threadsn –depths n”爬取网页时,在日志中会看到以下错误:

java.lang.NullPointerExceptionatorg.apache.avro.util.Utf8.(Utf8.java:37)

atorg.apache.nutch.crawl.GeneratorReducer.setup(GeneratorReducer.java:100)

atorg.apache.hadoop.mapreduce.Reducer.run(Reducer.java:174)

atorg.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649)

atorg.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:418)

atorg.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:398)

并且“nutch-site”文件需要保存为utf-8格式,否则在执行nutch命令时会出现以下错误。

Exception in thread “main”java.lang.RuntimeException:com.sun.org.apache.xerces.internal.impl.io.malformedByteSequenceException: 1字节的UTF-8序列的字节1无效。

网页抓取配置

1)      设置抓取的网站

cd ${NUTCH_HOME}/runtime/local

mkdir -p urls

echo 'http://www.tianya.cn' >urls/seed.txt

2)      执行爬取操作

bin/nutch crawl urls -depth 3 -topN 5

执行完在mysql中即可查看到爬虫抓取的内容,如下图:

nutch2.3 mysql教程_nutch2.2.1+mysql集成教程相关推荐

  1. python 持续集成 教程_jenkins+python自动化测试持续集成教程

    一.首先我们安装Jenkins,我这里采用的是.msi应用程序,根据提示进行安装(傻瓜式),最后会打开默认的网页地址:http://localhost:8080 如果端口有冲突,可以去Jenkins的 ...

  2. Spring JSF集成教程

    Spring JSF集成教程 欢迎来到Spring JSF集成教程.JSF是一个基于组件的框架,非常注重用户界面.而Spring框架核心原则是依赖注入.因此,将JSF与Spring框架集成是有意义的, ...

  3. win mysql修改端口号_Windows10系统下查看mysql的端口号并修改的教程图解

    mysql的端口号默认是3306,初学者可能有时会忘记或者之前修改了默认的端口号,忘记了,或者很多时候我们一台电脑需要安装两个mysql或者想设置一个自己的喜欢的数字,那么接下来我们来看看如何查看或者 ...

  4. MySQL必知必会教程:深入理解MySQL技术内幕

    2019独角兽企业重金招聘Python工程师标准>>> MySQL必知必会教程:深入理解MySQL技术内幕 作为最流行的开源数据库软件之一,MySQL数据库软件已经是广为人知了.当前 ...

  5. apache mysql 连接数 winnt,APACHE PHP MYSQL PHPMYADMIN超详细配置教程

    Apache+PHP+MySQL+phpMyAdmin超详细配置教程 安装之前需要下载 Apache2.0.59 PHP4.4.4Win32 MySQL4.12 phpMyAdmin2.9.1.1rc ...

  6. 32位mysql安装包_《MySQL 入门教程》第 02 篇 MySQL 安装

    文章来源:<MySQL 入门教程>第 02 篇 MySQL 安装 原文作者:不剪发的Tony老师 来源平台:CSDN 上一篇我们了解了什么是MySQL数据库. 本文介绍如何在 Window ...

  7. php mysql ajax 分页_ajax+php+mysql无刷新分页代码(1/2)_PHP教程

    ajax+php+mysql无刷新分页代码 ajax+php教程+mysql教程无刷新分页代码 2 3 4投票结果 5 6 7 8 9 function getxmlhttpobject() 10 { ...

  8. mysql核心数据库_从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程...

    从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程 课程目录 (1) 01MySQL基础_课程引入.avi (2) 02MySQL基础_为什么学习 ...

  9. MySQL卸载5.重新安装 8.0.20教程(windows 64位)

    1.卸载旧的MySQL(5.),旧版安装时为压缩包文件安装 参考:如何把旧版的mysql卸载干净并安装新版mysql?(若有侵权,请私聊删除) 1.先将数据进行备份: 快捷键win+R,输入cmd,回 ...

  10. mysql 8.0.18安装,mysql 8.0.18 安装配置方法图文教程

    mysql 8.0.18 安装配置方法图文教程 本文记录了mysql 8.0.18 安装配置图文教程,供大家参考,具体内容如下 第一步:下载MySql 下载地址:MySQL 第二步:安装MySql 打 ...

最新文章

  1. 某程序员揭秘“开水团”大厂真实福利:工位拥挤,没有食堂!公司防员工跟防贼一样,特别是纸巾和插排都粘到桌子上!...
  2. R语言可视化分面图、多变量分组嵌套多水平t检验、可视化多变量分组嵌套多水平分面条形图(faceting bar plot)并添加显著性水平、添加误差条
  3. (分类-部分)如何转载别人的文章
  4. Spring.io本地服务器解决超时问题
  5. python解acm题_python ACM ,持续更新中。。。。。。。。。。。。
  6. Python探索记(10)——字符串(下)
  7. 剑指offer 66题 -- 丑数
  8. python的for循环语句range_Python入门第7课,循环结构学习,for语句range函数的3种用法...
  9. Android PreferenceActivity添加ToolBar
  10. html 实现音乐的波形,GitHub - wanlixi/html5-audio: 展示html5提供的强大的音频控制API...
  11. BN层的running_mean更新机制
  12. JAVA 实现《坦克大战》游戏|CSDN创作打卡
  13. torch.isfinite()、torch.isinf()、torch.isnan()
  14. 猿辅导们有“缘”难“分”
  15. 计算机配置打开命令行,win7开机f8进入修复计算机cmd装xp
  16. 成功解决Unable to allocate xxx MiB for an array with shape (xxxx, xxxx)
  17. k8s(四):核心技术-Controller
  18. 几种android实时视频网络传输方案比较
  19. 容联云AI问鼎“千言数据集—实体链指评测“,持续打造知识语义计算能力
  20. 【java】调用百度开发平台ai接口,完成人脸识别(人脸搜索、人脸对比、人脸检测等)功能--------超详细,适合小白

热门文章

  1. 华为U2000网管研究实录 (4) - 运行分析(系统监控客户端)
  2. docx4j学习笔记
  3. 【数据产品案例】阿里生意参谋-用户分析
  4. IDL 解析葵花8Himawari-8标准数据(HSD),辐射定标、重投影、裁剪
  5. Hive SQL行列转换
  6. Park 变换 系数2/3的由来
  7. Resnet网络结构图和对应参数表的简单理解
  8. 图解PROFINET——PROFINET IO设备类型
  9. 数据库(MySQL)基础快速入门!
  10. 在拼多多上班,是一种什么样的体验?我心态崩了呀!