爬虫技术python nutch_把Nutch爬虫部署到Hadoop集群上

软件版本:Nutch 1.7, Hadoop 1.2.1, CentOS 6.5, JDK 1.7

前面的3篇文章中, Nutch 快速入门(Nutch 1.7) , Nutch 快速入门(Nutch 2.2.1) ,在Eclipse里运行Nutch,Nutch都是跑在单机上,本文把Nutch部署到Hadoop集群上,在真正的分布式Hadoop集群上跑。

前提

1 启动Hadoop集群

伪分布式或真分布式的Hadoop集群都可以,无所谓。

选择一台配置好了的Hadoop客户端的机器(见Hadoop多用户的配置),作为客户机,以下操作均在这台客户机上进行。

2 下载Nutch源码

有两种方法,

去官网首页下载apache-nutch-1.7-src.tar.gz

用svn checkout

$ svn co https://svn.apache.org/repos/asf/nutch/tags/release-1.7

3 把Hadoop的6个配置文件拷贝到Nutch的conf/目录

将Hadoop的六个配置文件,拷贝到Nutch的conf/目录,相当于把Hadoop集群的配置信息告诉Nutch,

在伪分布式模式下,

$ cd ~/local/opt/hadoop-1.2.1/conf$ cp hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml masters slaves /home/soulmachine/local/src/apache-nutch-1.7/conf

在分布式模式下,

$ ssh hadoop@localhost$ cd ~/local/opt/hadoop-1.2.1/conf$ scp hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml masters slaves soulmachine@localhost:~/local/src/apache-nutch-1.7/conf$ exit

4 修改Nutch的配置文件

修改 conf/nutch-site.xml:

http.agent.nameMy Nutch Spider

修改 regex-urlfilter.txt , 见 Nutch 快速入门(Nutch 1.7) 第4节,

# accept anything else#注释掉这行#+.+^http://movie.douban.com/subject/[0-9]*/$

5 重新编译Nutch

每次修改了 $NUTCH_HOME/conf 下的的文件,都需要重新编译Nutch,重新打包生成一个nutch-x.x.x.job文件,见这里, Running Nutch in (pseudo) distributed-mode 。也可以打开build.xml看看里面的”runtime”这个task干了什么,就明白了。

$ ant runtime

这会在 runtime/deploy 下生成一个Job文件, apache-nutch-1.7.job ,它本质上是一个zip压缩包,可以打开看一下它里面的内容。可以看到它包含了很多编译好的class文件,以及从conf/目录下的拷贝出来的xml配置文件。

6 向Hadoop集群提交Job,进行抓取

首先,要在con/hadoop-env.sh 添加 HADOOP_CLASSPATH ,让Hadoop知道去哪里找Nutch所依赖的jar包,

export HADOOP_CLASSPATH=/home/soulmachine/local/opt/apache-nutch-1.7/runtime/local/lib/*.jar

上传种子URL列表,

$ hadoop fs -put ~/urls urls$ hadoop fs -lsr urls

提交Job,

$ hadoop jar ./runtime/deploy/apache-nutch-1.7.job org.apache.nutch.crawl.Crawl urls -dir TestCrawl -depth 1 -topN 5

可以打开web页面监控job的进度,

Jobtracer: http://localhost:50030

Namenode: http://localhost:50070

把Nutch运行在伪分布式Hadoop集群上,比Standalone模式要好,因为可以通过web页面监控job。

查看结果

$ hadoop fs -ls TestCrawlFound 3 itemsdrwxr-xr-x - soulmachine supergroup 0 2014-02-04 02:17 /user/soulmachine/TestCrawl/crawldbdrwxr-xr-x - soulmachine supergroup 0 2014-02-04 02:18 /user/soulmachine/TestCrawl/linkdbdrwxr-xr-x - soulmachine supergroup 0 2014-02-04 02:16 /user/soulmachine/TestCrawl/segments

参考资料

本文转载自:研究研究

欢迎加入我爱机器学习QQ14群:336582044

微信扫一扫,关注我爱机器学习公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值