nutch2.3 mysql教程_nutch2.2.1+mysql集成教程
首先,参考笨小葱之前的博客,完成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集成教程相关推荐
- python 持续集成 教程_jenkins+python自动化测试持续集成教程
一.首先我们安装Jenkins,我这里采用的是.msi应用程序,根据提示进行安装(傻瓜式),最后会打开默认的网页地址:http://localhost:8080 如果端口有冲突,可以去Jenkins的 ...
- Spring JSF集成教程
Spring JSF集成教程 欢迎来到Spring JSF集成教程.JSF是一个基于组件的框架,非常注重用户界面.而Spring框架核心原则是依赖注入.因此,将JSF与Spring框架集成是有意义的, ...
- win mysql修改端口号_Windows10系统下查看mysql的端口号并修改的教程图解
mysql的端口号默认是3306,初学者可能有时会忘记或者之前修改了默认的端口号,忘记了,或者很多时候我们一台电脑需要安装两个mysql或者想设置一个自己的喜欢的数字,那么接下来我们来看看如何查看或者 ...
- MySQL必知必会教程:深入理解MySQL技术内幕
2019独角兽企业重金招聘Python工程师标准>>> MySQL必知必会教程:深入理解MySQL技术内幕 作为最流行的开源数据库软件之一,MySQL数据库软件已经是广为人知了.当前 ...
- apache mysql 连接数 winnt,APACHE PHP MYSQL PHPMYADMIN超详细配置教程
Apache+PHP+MySQL+phpMyAdmin超详细配置教程 安装之前需要下载 Apache2.0.59 PHP4.4.4Win32 MySQL4.12 phpMyAdmin2.9.1.1rc ...
- 32位mysql安装包_《MySQL 入门教程》第 02 篇 MySQL 安装
文章来源:<MySQL 入门教程>第 02 篇 MySQL 安装 原文作者:不剪发的Tony老师 来源平台:CSDN 上一篇我们了解了什么是MySQL数据库. 本文介绍如何在 Window ...
- 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 { ...
- mysql核心数据库_从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程...
从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程 课程目录 (1) 01MySQL基础_课程引入.avi (2) 02MySQL基础_为什么学习 ...
- MySQL卸载5.重新安装 8.0.20教程(windows 64位)
1.卸载旧的MySQL(5.),旧版安装时为压缩包文件安装 参考:如何把旧版的mysql卸载干净并安装新版mysql?(若有侵权,请私聊删除) 1.先将数据进行备份: 快捷键win+R,输入cmd,回 ...
- mysql 8.0.18安装,mysql 8.0.18 安装配置方法图文教程
mysql 8.0.18 安装配置方法图文教程 本文记录了mysql 8.0.18 安装配置图文教程,供大家参考,具体内容如下 第一步:下载MySql 下载地址:MySQL 第二步:安装MySql 打 ...
最新文章
- 某程序员揭秘“开水团”大厂真实福利:工位拥挤,没有食堂!公司防员工跟防贼一样,特别是纸巾和插排都粘到桌子上!...
- R语言可视化分面图、多变量分组嵌套多水平t检验、可视化多变量分组嵌套多水平分面条形图(faceting bar plot)并添加显著性水平、添加误差条
- (分类-部分)如何转载别人的文章
- Spring.io本地服务器解决超时问题
- python解acm题_python ACM ,持续更新中。。。。。。。。。。。。
- Python探索记(10)——字符串(下)
- 剑指offer 66题 -- 丑数
- python的for循环语句range_Python入门第7课,循环结构学习,for语句range函数的3种用法...
- Android PreferenceActivity添加ToolBar
- html 实现音乐的波形,GitHub - wanlixi/html5-audio: 展示html5提供的强大的音频控制API...
- BN层的running_mean更新机制
- JAVA 实现《坦克大战》游戏|CSDN创作打卡
- torch.isfinite()、torch.isinf()、torch.isnan()
- 猿辅导们有“缘”难“分”
- 计算机配置打开命令行,win7开机f8进入修复计算机cmd装xp
- 成功解决Unable to allocate xxx MiB for an array with shape (xxxx, xxxx)
- k8s(四):核心技术-Controller
- 几种android实时视频网络传输方案比较
- 容联云AI问鼎“千言数据集—实体链指评测“,持续打造知识语义计算能力
- 【java】调用百度开发平台ai接口,完成人脸识别(人脸搜索、人脸对比、人脸检测等)功能--------超详细,适合小白