`
chengqianl
  • 浏览: 52468 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

nutch inject 详解

阅读更多
nutch的inject 有二个job

第一个job 如下图



map :InjectMapper 功能如下
 
1  url是否有tab分割的k-v 对如果有记录下来,
2  如果配置了过滤使用 URLNormalizers和 URLFilters 对url 进行格式化和过滤,
3  如果过滤的url 不为空则创建CrawlDatum对象,状态 STATUS_INJECTED,设置fetcher 间隔时间从fetchdb.fetch.interval.default  配置中取,如果没有默认2592000s 为30 天

4  设置fectchtime  为当前时间  datum.setFetchTime(curTime);

5 设置 score  根据db.score.injected 配置分数,默认为1

这个job 只有map 没有reduce,所以使用默认的reduce
  map 输入 : 存放url的目录 如果 bin/nutch  crawl urls -dir crawl -topN 1  -depth 1 这个命令 输入是urls,默认的使用TextInputFormat输入的 key:偏移量 value:一行的文本   ,map的输出为 key :Text  为url, value:CrawlDatum

没有设置reduce 使用默认的Reducer
reduce输出 :mapred.temp.dir 配置的属性值目录下面的(inject-temp-当前时间)下面 输出为 key :Text  为url, value:List<CrawlDatum>

 
第二个job如下图



这个job 叫mergerjob主要是合并第一个job的输出和crawldb/current 下面的值进行合并,输出目录为crawldb/current 。
map :CrawlDbFilter  功能如下
      输入目录为参数crawlDb/current 和上次job的输出目录
      key:Text value:CrawlDatum 
     如果设置了urlNormalizers=true 对url进行normalize
      如果设置了urlFiltering=true 对url进行过滤
       如果url不为空 写入
       key : Text  为url  value:  CrawlDatum
reduce :InjectReducer
    对一个key 的value,设置状态,如果value中的CrawlDatum 如果状态是CrawlDatum.STATUS_INJECTED 则设置状态为CrawlDatum.STATUS_DB_UNFETCHED
里面的多值去重复,否则不设置状态,使用当前的状态,如果存在多值,如果有状态不是CrawlDatum.STATUS_INJECTED,使用这个状态,否则使用    CrawlDatum.STATUS_DB_UNFETCHED,写入
    输出目录为   crawldb 下面的先建一个随机数命名的目录
    Path newCrawlDb =
      new Path(crawlDb,
               Integer.toString(new Random().nextInt(Integer.MAX_VALUE)));
CrawlDb.install 替换 current目录
  逻辑如下
1 如果crawlDb 下面有old目录删除old目录
2 把crawlDb 下面的current目录变成old目录

3 把job是输出目录变成current目录删除old目录
  • 大小: 58.6 KB
  • 大小: 73.1 KB
分享到:
评论

相关推荐

    关于Nutch的安装

    【Nutch安装详解】 Nutch是一款开源的网络爬虫软件,用于抓取互联网上的网页并构建搜索引擎。本文将详细介绍如何安装Nutch version 0.8。 **1. 安装前提** 在开始Nutch的安装前,需要确保满足以下硬件和软件条件...

    搜索引擎nutch配置

    **Nutch搜索引擎配置详解** Nutch是一款开源的网络爬虫软件,主要用于收集、索引和搜索互联网上的数据。它在大数据领域中占有重要地位,尤其对于构建自定义搜索引擎的项目非常实用。Nutch的设计理念是模块化,允许...

    Nutch在Windows中安装之细解

    【Nutch在Windows中安装详解】 Nutch是一个由Apache基金会维护的开源搜索引擎项目,它允许用户构建内部网络或全局互联网的搜索引擎。在Windows系统中安装Nutch并不像在Linux那样直接,因为Nutch的一些脚本依赖于...

    Nutch 1.3 学习笔记

    1. **初始化crawlDb与注入初始URL**:使用`bin/nutch inject db/crawldb urls/`命令初始化数据库并注入初始URL列表。 2. **生成新的抓取URLs**:执行`bin/nutch generate crawldb segments_dir [-force] [-topNN] [-...

    分析Nutch的工作流程

    ### Nutch工作流程详解 #### 一、Nutch概述及工作流程概览 Nutch是一款开源的网络爬虫项目,其主要功能在于抓取互联网上的网页,并对其进行分析、索引,以便用户能够快速检索到所需的信息。Nutch的灵活性和可扩展...

    分享一个Nutch入门学习的资料

    【Nutch入门学习资料详解】 Nutch是一款开源的网络爬虫软件,主要用于抓取和索引互联网上的网页,是大数据领域中的重要工具之一。本文将深入解析Nutch的基础知识,帮助初学者快速入门。 1. **Nutch简介** Nutch是...

    windows下nutch的安装配置以及与tomcat的集成.doc

    ### Windows下Nutch的安装配置与Tomcat集成详解 #### Nutch概述 Nutch是一款开源的搜索引擎框架,基于Java开发,旨在提供一个完整的搜索引擎解决方案。它由两大部分组成:抓取部分(Crawler),负责抓取网页数据并...

    nutch tutorials0.8

    - 使用`inject`, `generate`, `fetch`, 和`updatedb`等底层命令可实现更为精细的全网抓取控制。 #### 四、全网抓取概览 全网抓取允许用户以高度定制的方式抓取整个互联网,涉及概念、数据库初始化、数据抓取、索引...

    网络爬虫教程

    ### 知识点详解:Nutch教程——网络爬虫实现 #### 一、Nutch简介与准备工作 **Nutch** 是一个高度可扩展且开放源代码的网络爬虫项目,它可以抓取整个互联网上的网页,并对其进行索引。Nutch基于Hadoop构建,非常...

Global site tag (gtag.js) - Google Analytics