设为首页 收藏本站
查看: 805|回复: 0

[经验分享] ant编译apache-nutch-2.2.1结合mysql实现爬虫的安装配置全过程

[复制链接]

尚未签到

发表于 2015-8-6 10:17:38 | 显示全部楼层 |阅读模式
  之前的数据抓取都是用的八爪鱼软件,老大突发奇想要我自己搞个爬虫来抓取数据,网上找找貌似apache的nutch比较合适,于是就开始安装这啥nutch。
  对于一个linux零基础的人来说,还要先学学linux,大致了解了ssh连接工具怎么用后就开始正事了。了解到从nutch2开始,源码就必须要自己编译了,所以还要先安装ant。低版本的ant还不行,需要1.6以上的,所以找了个最新的。
  ant安装:(ant是基于java的,所以要先确保系统中已经安装了jdk)
  1.下载地址:http://ant.apache.org/bindownload.cgi 下载apache-ant-1.9.4-bin.tar.gz(当前最新版本),将该下载包拷贝到/usr/local下(随意了,找个地方就好)
  2。解压
  cd /usr/local  
  tar -zxvf apache-ant-1.8.1-bin.tar.gz
  解压后会在/usr/local 下生成一个文件夹apache-ant-1.8.1
  3。配置环境变量
  vi /etc/profile,如下所示 加入ANT_HOME(解压的ant的路径)同时修改path



unset i
unset pathmunge
export JAVA_HOME=/usr/java/jdk1.7.0_25  
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export ANT_HOME=/usr/local/apache-ant-1.9.4
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
  赋予连接
  cd /usr/bin
  ln -s -f /usr/local/ant/bin/ant
  4。验证是否安装成功  
  运行ant -version,输出如下内容:
  [iyunv@localhost ~]# ant -version
          Apache Ant version 1.9.4 compiled on 。。。。
  ok,ant配置完成。
  nutch的安装:

    一.下载:
  从官网http://www.apache.org/dyn/closer.cgi/nutch/下载最新版本apache-nutch-2.2.1同样放在本地usr/local(位置当然随个人喜好)

    二.解压
  cd /usr/local  
  tar -zxvf apache-nutch-2.2.1-bin.tar.gz

    三.ant编译前需要做的几件事:
  (1)需要下载sonar的jar包(sonar-ant-task-2.1.jar),并将jar包放到解压好的apache-nutch-2.2.1文件夹内
  没有这个jar包,编译会出现错误如下:



[taskdef] Could not load definitions from resource org/sonar/ant/antlib.xml. It could not be found.
ivy-probe-antlib:
ivy-download:
[taskdef] Could not load definitions from resource org/sonar/ant/antlib.xml. It could not be found.
  (2)nutch编译安装时需要从maven资源库下载jar包,其本身配置文件中的maven仓库地址是不存在的,所以需要修改。
  即:cd apache-nutch-2.2.1/ivy
  vi ivy.setting.xml      修改nutch里ivy目录下的ivysetting.xml




  将maven的路径用http://mirrors.ibiblio.org/maven2/替换,或者其他可用的maven仓库地址。
  (3)设置数据抓取的存储位置(可以选择使用HBase、Accumulo、Cassandra 、MySQL 、DataFileAvroStore、AvroStore中任何一种来存储数据,但其中一些并不成熟。)
  我选择了简单的mysql,以后学习的Hadoop可以试着和Hadoop结合。
     1.手动创建数据库nutch和数据表webpage【如果不想用默认的库名和表名也可在nutch安装后的相关配置文件中进行修改,见后续说明】,其中webpage的表结构如下:


DSC0000.gif DSC0001.gif


CREATE TABLE `webpage` (
`id` varchar(767) NOT NULL,
`headers` blob,
`text` longtext DEFAULT NULL,
`status` int(11) DEFAULT NULL,
`markers` blob,
`parseStatus` blob,
`modifiedTime` bigint(20) DEFAULT NULL,
`prevModifiedTime` bigint(20) DEFAULT NULL,
`score` float DEFAULT NULL,
`typ` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
`batchId` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
`baseUrl` varchar(767) DEFAULT NULL,
`content` longblob,
`title` varchar(2048) DEFAULT NULL,
`reprUrl` varchar(767) 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,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
View Code   注:表中的字段根据nutch的conf文件“gora-sql-mapping”进行设置。同时也可通过自动方式生成数据库和表:配置好“gora-sql-mapping”、“gora.properties”及其它文件后,首次通过运行”bin/nutch inject urls”即可自动生成数据库和表,不过或许在自动生成的时候你会遇到问题。gora-sql-mapping配置文件如下:








   







   

























View Code       注:此处需要将gora-sql-mapping.xml中的id的length改成255。貌似是编码问题。
  配置nutchmysql的支持:修改${APACHE_NUTCH_HOME}/ivy/ivy.xml文件,分别:
    将以下行的注释取消

default”/>

    修改以下行



  •     从默认的,改成
  •     将以下行的注释取消
  
  如果不修改以上的两点,Exception in thread “main” Java.lang.ClassNotFoundException:org.apache.gora.sql.store.SqlStore
   3. 数据库连接配置
     编辑/conf/gora.properties文件,注释掉默认的数据库连接配置,同时添加以下配置内容:



###############################
# Default MySql properties #
###############################
gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver
gora.sqlstore.jdbc.url=jdbc:mysql://192.168.70.4:3306/nutch-test
gora.sqlstore.jdbc.user=root1
gora.sqlstore.jdbc.password=123456
  
      4.修改nutch-default配置文件





   添加http.agent.name的值

http.agent.name
YourNutchSpider


在文件末尾添加以下内容

http.accept.language
ja-jp, en-us,en-gb,en;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.



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:.




parser.character.encoding.default
utf-8
The character encoding to fall back to when no other information
is available


特别添加以下内容

generate.batch.id
*

View Code  如果不添加最后的一段,


Exception in thread "main" java.lang.RuntimeException: job failed: name=generate: null, jobid=job_local177967844_0002      at org.apache.nutch.util.NutchJob.waitForCompletion(NutchJob.java:54),查询发现utf8 传入了空,log报空指针
  

    四.执行ant编译:
  cd apache-nutch-2.2.1   
  ant



clean-lib:
resolve-default:
[ivy:resolve] :: Ivy 2.2.0 - 20100923230623 :: http://ant.apache.org/ivy/ ::
[ivy:resolve] :: loading settings :: file = /home/shaozt/softIns/CrawSource/apache-nutch-2.1/ivy/ivysettings.xml
  当编译执行到此处时,由于需要从maven仓库下载jar包,所以需要等待2-5分钟连接服务器,根据网络情况决定,需要等很久,有时还会连接服务器失败,如果等很久,可以Ctrl+C退出后,从新ant编译。直到出现编译成功。build successful



runtime:
BUILD SUCCESSFUL
Total time: 18 seconds
[iyunv@localhost apache-nutch-2.2.1]#
  cd apache-nutch-2.2.1
  tree -L 1  查看目录发现多了build 和 runtime两个文件夹  安装成功



.
|-- CHANGES.txt
|-- LICENSE.txt
|-- NOTICE.txt
|-- README.txt
|-- build
|-- build.xml
|-- conf
|-- default.properties
|-- docs
|-- ivy
|-- lib
|-- runtime
|-- sonar-ant-task-2.1.jar
`-- src
    五.网页抓取配置
       1) 设置抓取的网站
  cd ${NUTCH_HOME}/runtime/local
  mkdir -p urls
  echo 'http://www.taobao.com' > urls/seed.txt
       2) 执行爬取操作
      bin/nutch crawl urls -depth 3 -topN 5

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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-94660-1-1.html 上篇帖子: 【转】windows系统下apache和IIS共用80端口的安装调试实录 下篇帖子: apache日志切割
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表