提高Nutch局域网抓取的速度

如果想要提高Nutch局域网抓取的速度,大家第一个想到肯定是-threads .但是那是错误的,如果只是单单增大线程数,那根本于事无补。

通过下面这组测试,我们看看-threads 是否起作用。threads的值分别为1,5,10 结果如下表:

线程数时间
1891.001462
5889.560529
10878.812949

从上面表格可以看出,这根本一点作用都没有。第一种提高速度的方法就是减少抓取之间的延迟时间,我们可以通过修改conf/nutch-default.xml中fetcher.server.delay 来减少延迟时间。

fetcher.server.delay 抓取器在同一服务器的逐次请求所延迟的秒数

我们试试减小它的值为1.0(原先的值为5.0)。经过测试,结果如下:

线程数时间
1482.807096
5488.666853
10486.67904

显然速度提高了,但是线程数还是起没有作用,原因就在于conf/nutch-default.xml中fetcher.threads.per.host 配置为1。那么第二种方法就是同一时刻允许多个线程访问同一主机。

fetcher.threads.per.host 这个值允许同一时刻访问一台主机的最大线程数

如果这个配置为1,同一时刻只允许一个线程,启动多少的线程都没用。下面我们增大这个配置为5,测试结果如下:

线程数时间
1484.754918
5384.201041
10332.934009

很明显随着线程数的增大,抓取速度也在增大。如果还想再提高速度的话,可以减小抓取之间的延迟时间。不过不是修改fetcher.server.delay ,而是修改fetcher.server.min.delay 。这个配置是设定抓取器在同一服务器的逐次请求所延迟最小的秒数,这个值仅当fetcher.threads.per.host 属性值比1大时适用。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值