nutch搏斗之一

问题描述: 
在用nutch1.0做generate 包括5亿url的crawldb时,它默认按照64M分块,分成777个map task,在运行的后期出现 
Could
not find
taskTracker/jobcache/job_200903231519_0017/attempt_200903231519_0017_r_000051_0/output/file.out
in any of the configured local directories 
异常。 
解决办法: 
减小task数目,改成按照crawldb里面文件个数划分的策略:

  1. public static class InputFormat extends SequenceFileInputFormat<WritableComparable, Writable> {
  2. /** Don't split inputs, to keep things polite. */
  3. public InputSplit[] getSplits(JobConf job, int nSplits)
  4. throws IOException {
  5. FileStatus[] files = listStatus(job);
  6. FileSystem fs = FileSystem.get(job);
  7. InputSplit[] splits = new InputSplit[files.length];
  8. for (int i = 0; i < files.length; i++) {
  9. FileStatus cur = files[i];
  10. splits[i] = new FileSplit(cur.getPath(), 0,
  11. cur.getLen(), (String[])null);
  12. }
  13. return splits;
  14. }
  15. }

这次出现了新问题,有数个task因为十分钟无反应而导致整个任务failed 
解决办法: 
修改hadoop-site.xml

  1. <property>
  2. <name>mapred.task.timeout</name>
  3. <value>3600000</value>
  4. <description>The number of milliseconds before a task will be
  5. terminated if it neither reads an input, writes an output, nor
  6. updates its status string.
  7. </description>
  8. </property>

总结: 
大与小,多与少,长与短,在不同的情况下是不断变化的,对于大数据量而言,更要跟具实际情况灵活变化,所谓运用之刀,存乎一心是也!

nutch搏斗之一的更多相关文章

  1. Nutch搜索引擎(第1期)_ Nutch简介及安装

    1.Nutch简介 Nutch是一个由Java实现的,开放源代码(open-source)的web搜索引擎.主要用于收集网页数据,然后对其进行分析,建立索引,以提供相应的接口来对其网页数据进行查询的一 ...

  2. Nutch插件原理

    本文目的:讲解Nutch的插件运行时加载原理

  3. Apache Nutch build文件解析

    本文目的:分析Apache Nutch 1.9的build.xml文件,从而让读者了解nutch的build全部流程

  4. Nutch主要类代码分析之一(Injector)

    Injector(org.apache.nutch.crawl.Injector): 输入:种子列表文件所在的目录 输出:crawldb(保存URL以及其相应信息的数据库) 作用:把种子URL注入到c ...

  5. 读取nutch爬取内容方法

    读取nutch内容有如下两种方法: 1 通过Nutch api SegmentReader读取. public Content readSegment(String segPath,String ur ...

  6. Nutch源码阅读进程5---updatedb

    看nutch的源码仿佛就是一场谍战片,而构成这精彩绝伦的谍战剧情的就是nutch的每一个从inject->generate->fetch->parse->update的环节,首 ...

  7. Nutch源码阅读进程4---parseSegment

    前面依次看了nutch的准备工作inject和generate部分,抓取的fetch部分的代码,趁热打铁,我们下面来一睹parse即页面解析部分的代码,这块代码主要是集中在ParseSegment类里 ...

  8. Nutch源码阅读进程3---fetch

    走了一遍Inject和Generate,基本了解了nutch在执行爬取前的一些前期预热工作,包括url的过滤.规则化.分值计算以及其与mapreduce的联系紧密性等,自我感觉nutch的整个流程是很 ...

  9. Nutch源码阅读进程2---Generate

    继之前仓促走完nutch的第一个流程Inject后,再次起航,Debug模式走起,进入第二个预热阶段Generate~~~   上期回顾:Inject主要是将爬取列表中的url转换为指定格式<T ...

随机推荐

  1. 首款符合PICO-ITX规格的A20开源硬件开发平台

    http://mp.weixin.qq.com/mp/appmsg/show?__biz=MjM5NzM0MjcyMQ==&appmsgid=10001083&itemidx=2&am ...

  2. 【环境配置】配置sdk

    1. 安装和配置 (1) 下载sdk 官方下载地址http://developer.android.com/sdk/index.html 这里以android-sdk_r12-linux_x86.tg ...

  3. Effective C++_笔记_条款07_为多态基类声明virtual析构函数

    (整理自Effctive C++,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 这个规则只适用于polymorphic(带多态性质的)base ...

  4. SuperSocket应用之FTP源码解析

    一 简述 命令行协议是一种使用比较多的协议,其优点在于使用简单易于扩展性,同时也利于解析和使用.FTP,POP,SMTP等均采用命令行协议,其中FTP在早起互联网时期成为网络资源共享的主要方式,可见F ...

  5. 基于visual Studio2013解决面试题之0307最后谁剩下

     题目

  6. gcc中__attribute__ ((constructor(101)))做成.a库成功链接

    1.cpp:------------------------------------------------ #include int test() __attribute__ ((construct ...

  7. html5实现拖拽文件上传

    以下是自学it网--中级班上课笔记 网址:www.zixue.it html文件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict ...

  8. sql server 2012 数据库还原方法

    USE master RESTORE DATABASE WSS_Content FROM DISK = N'D:\bak\contentbak.bak' WITH REPLACE, NORECOVER ...

  9. 辛星PHP教程之yii和ci教程已经写完,望与朋友们交流

     记得有个朋友给我说,你写的PHP框架是不是过于少了.我感觉仅仅有一个thinkphp确实不好,于是就又写了下yii和ci的教程,事实上我之前是研究过这两个框架的,因此写起来也还算得心应手吧.估计接下 ...

  10. OGEngine教程:声音载入

    以下介绍声音资源从载入到播放的一个流程 首先,我们将须要的音频文件放到assets文件夹下,OGE中SoundRes和MusicRes为我们封装了非常多经常使用的方法,能够用于载入及播放等经常使用功能 ...