今天该进入主题了
十一、Nutch
首先是下载,原来只有一个版本,当时折腾的时候是1.0,现在突然冒出两个版本,一个1.16,一个2.4,那么到底有什么差别呢?先查查资料看看再说。
现在Nutch分为两个版本:1.x和2.x,这两个版本的主要区别在于底层的存储不同。1.x版本是基于Hadoop架构的,底层存储使用的是HDFS,而2.x通过使用Apache Gora,使得Nutch可以访问HBase、Cassandra、MySQL、DataFileAvroStore、AvroStore等等。从这点上来看,就根据个人的需要来确定了,用什么样的存储方式更方便咱就用什么,现在咱们可以考虑2.X版本的mysql,为啥,因为我就认识这一个,嘿嘿,挺不好意思的哈,其他都脸盲。
既然准备使用MySql,就首先要安装再进行后续的操作。
1、MySql的安装
习惯先检查一下有没有更新,有更新了先更新完再说。
apt update
apt upgrade
检索一下MySql的包包
apt list | grep mysql
简单点操作mysql还是要有个workbench比较好一些哈,先上网站下载deb包准备着。
https://dev.mysql.com/downloads/repo/apt/ 直接网站左下角,No thanks,just start my download.就可以下载了。
然后下载workbench
https://dev.mysql.com/downloads/workbench/ 选择ubuntu19.10版本,同样左下角点击下载。
开始安装mysql 已经是8.0版本了 245M大小
apt install mysql-server mysql-client
默认安装好之后没有任何密码的设置提示,那好吧,先看看到底有没有密码
mysql 呀,直接进入了,压根没有密码,抓紧时间设置一个,多少有点安全保障啊
ALTER user 'root'@'localhost' IDENTIFIED WITH caching_sha2_password by '你的密码';
现在把workbench安装好,用root登录一下试试,是不是提示了密码了。登录OK
2、Nutch 下载2.x版本的tar包
提取所有文件后,复制到usr目录下备用,然后下载ant并配置环境,为什么前面安装的JDK8,在这里体现出来了,ant的最新版本是1.10.7,就是对应jdk8的版本。1.9版本对应的是JDK1.5
提取文件,将目录复制到usr或者opt目录,看个人习惯,我是放到了opt目录下
配置环境变量 gedit /etc/profile
添加
#SET ANT ENVIRONMENT
export ANT_HOME=/opt/apache-ant-1.10.7-bin
export PATH=${ANT_HOME/bin}:$PATH #$PATH切记不要忘记了!并且用:英文半角的冒号连接。
保存退出,重启计算机或者source /etc/profile
测试一下ant -version
有了版本号提示,就表示ant配置成功了。
3、配置Nutch支持mysql
gedit ivy/ivy.xml 文件
在
添加mysql的相关配置
同样是nutch目录下的conf/gora.properties
默认是没有sqlstore段,在最后添加如下代码:
#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=root
gora.sqlstore.jdbc.password=你的mysql密码
还是conf目录下,有一个nutch-default.xml文件,打开,复制所有内容到 nutch-site.xml,这个文件默认情况下是没有配置参数数据的。
十二、Nutch-site.xml详细配置
1、http.agent.name
这个value值默认是空,在编译使用前必须配置value值
在下面的
还有一个就是下面紧挨着的http.robots.agents的value值,不需要修改,这个会涉及到很多网站根目录下设置的robots.txt,下面说明的很清晰apart from 'http.agent.name',除了上面的agent.name外的,如果不知道的话,可以留空,默认使用http.agent.name
2、http.agent.version
根据自己需要显示的版本进行设置,也可以不设置。
3、http.accept.language
这个涉及到了语言的问题,请求头可以接受的语言,这里允许使用非英语语言作为默认检索的语言。这里可以在value中添加ja-jp,中文的则需要添加zh-CN,zh
This allows selecting non-English language as default one to retrieve.
It is a useful setting for search engines build for certain national group.
4、FTP properties控制爬取ftp,其中的用户名ftp.username和ftp.password,根据自己掌握的内容修改value值
5、975行左右
这里需要修改的是parser.character.encoding.default,默认的值是
is available
6、 1415行左右
storage.data.store.class
这个控制用于存储和检索数据的存储类,下面有明确的举例,我们复制第一个---sql类,替换掉value值。
Currently the following stores are available: ….
7、还有一个额外的添加配置
generate.batch.id 只有有什么特殊的作用,我也不知道,学着做吧。
在之前添加
十三、编译Nutch
小插曲来了,忘记下载sonar-ant-task-2.X了,CSDN倒是多的是,2.1,2.2都有,就是要币,没有的就百度一下,可以下载到的哈。
把这个.jar包放到nutch目录下。java2s的网站下载很不稳定,开始还跑,一会儿网速就掉成0。
将下载的sonar-ant-task-2.1.jar文件拷贝到nutch目录下,然后修改目录下的build.xml文件,主要还是涉及ant和sql
找到行,在
保存文件后,在nutch目录下,执行ant runtime命令,要关注是否出现错误,根据提示进行修改,一般配置正确的话,都会正常执行,直到出现BUILD SUCCESSFUL即完成编译,不要以为是死机了哈。别忘了看看ant的配置是否还有效,如果无法打开ant,那就重启计算机再试一次,让配置生效在做。
忙其他事情,结果第二天停电,我勒个去,runtime和bin目录都没看到,这肯定是失败了啊,今天重新编译。
说两句题外话,本来是想用国产的deepinlinux的,来回的sudo不叫麻烦,想用root直接登录,结果操作了半天都没有办法使用root账号,在社区找了半天,才发现,deeplinux就是不能使用root账户的,那还是算了,用ubuntu吧,关键的一个原因是ubuntu下部署nutch的资料也相对多一些,遇到问题还能搜索一下,参考参考。