`
peigang
  • 浏览: 170715 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nutch学习笔记2.Injector 数据下载入口

 
阅读更多

org.apache.nutch.crawl.Injector

public class Injector extends Configured implements Tool 从继承类和实现接口可以看出,Injector封装了Hadoop并在构造函数中初始化Hadoop配置参数Configuration( Configuration 内部机制请参考博文hadoop学习笔记1.Configuration),这也是nutch封装Hadoop的一种机制。

Injector 包含两个属性:
/** metadata key reserved for setting a custom score for a specific URL */

 public static String nutchScoreMDName = "nutch.score";
/** metadata key reserved for setting a custom fetchInterval for a specific URL */
public static String nutchFetchIntervalMDName = "nutch.fetchInterval";

 

 

一个方法:

第一个参数  crawlDb为nutch抓取目录下crawlDb目录的路径;

第二个参数 urlDir为nutch抓取文件列表目录;

 

 

public void inject(Path crawlDb, Path urlDir)

 

 public void inject(Path crawlDb, Path urlDir) throws IOException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long start = System.currentTimeMillis();

//输出日志
if (LOG.isInfoEnabled()) {
LOG.info("Injector: starting at " + sdf.format(start));
LOG.info("Injector: crawlDb: " + crawlDb);
LOG.info("Injector: urlDir: " + urlDir);
}
//随机生成临时文件夹
  Path tempDir = new Path(getConf().get("mapred.temp.dir", ".") + "/inject-temp-"+
Integer.toString(new Random().nextInt(Integer.MAX_VALUE)));

// map text input file to a <url,CrawlDatum> file
if (LOG.isInfoEnabled()) {
LOG.info("Injector: Converting injected urls to crawl db entries.");
}

//创建作业,并设置作业实现类InjectMapper.class 
JobConf sortJob = new NutchJob(getConf());
sortJob.setJobName("inject " + urlDir);
FileInputFormat.addInputPath(sortJob, urlDir);
sortJob.setMapperClass(InjectMapper.class);
//设置设置map输出路径
FileOutputFormat.setOutputPath(sortJob, tempDir);

//设置作业参数
sortJob.setOutputFormat(SequenceFileOutputFormat.class);
sortJob.setOutputKeyClass(Text.class);
sortJob.setOutputValueClass(CrawlDatum.class);
sortJob.setLong("injector.current.time", System.currentTimeMillis());

//启动作业
JobClient.runJob(sortJob);

// merge with existing crawl db
if (LOG.isInfoEnabled()) {
LOG.info("Injector: Merging injected urls into crawl db.");
}


JobConf mergeJob = CrawlDb.createJob(getConf(), crawlDb);
FileInputFormat.addInputPath(mergeJob, tempDir);
mergeJob.setReducerClass(InjectReducer.class);
JobClient.runJob(mergeJob);
CrawlDb.install(mergeJob, crawlDb);

// clean up
FileSystem fs = FileSystem.get(getConf());
fs.delete(tempDir, true);

long end = System.currentTimeMillis();
LOG.info("Injector: finished at " + sdf.format(end) + ", elapsed: " + TimingUtil.elapsedTime(start, end));
}

 

 

 

分享到:
评论

相关推荐

    Nutch入门.rar

    1.4 nutch VS lucene.....2 2. nutch的安装与配置.....3 2.1 JDK的安装与配置.3 2.2 nutch的安装与配置........5 2.3 tomcat的安装与配置......5 3. nutch初体验7 3.1 爬行企业内部网....7 3.1.1 配置nutch.....

    nutch2.2.1安装步骤.docx

    2. apache-nutch-2.2.1-src.tar.gz:这是 Nutch 2.2.1 的源代码包。 3. apache-tomcat-8.5.39.tar.gz:Tomcat 是一个流行的 Java Servlet 和 JavaServer Pages(JSP)容器,用于运行 Nutch 的 Web 应用程序。 4. jdk...

    nutch 初学文档教材

    1.4 nutch VS lucene.....2 2. nutch的安装与配置.....3 2.1 JDK的安装与配置.3 2.2 nutch的安装与配置........5 2.3 tomcat的安装与配置......5 3. nutch初体验7 3.1 爬行企业内部网....7 3.1.1 配置nutch....7 ...

    Lucene+Nutch搜索引擎开发.王学松源代码

    1. 学习Nutch的配置与启动,理解其工作流程,如如何设置爬虫规则,如何定义抓取间隔等。 2. 理解Lucene的索引构建过程,包括如何创建索引,如何进行关键词分析,以及如何优化索引性能。 3. 掌握搜索功能的实现,包括...

    apache-nutch-2.3.1-src.tar.gz

    2. **Hadoop 集成**:Nutch 与 Hadoop 深度集成,利用 Hadoop 的分布式计算能力处理大规模数据。 3. **插件系统**:Nutch 具有强大的插件体系,允许用户根据需求自定义爬虫行为,例如解析不同格式的网页、定制索引...

    apache-nutch-1.3-src.tar.gz_nutch_nutch-1.3.tar.gz

    下载 "apache-nutch-1.3-src.tar.gz" 后,你可以深入了解 Nutch 的工作原理和架构。源码包括了各个模块的实现,如 Crawl、Fetch、Parse、Index、Search 等。通过阅读源码,你可以学习到如何设计和实现大规模的网络...

    Linux下Nutch分布式配置和使用.rar

    这是本人在完全分布式环境下在Cent-OS中配置Nutch-1.1时的总结文档,但该文档适合所有Linux系统和目前各版本的nutch。 目 录 介绍 ............................................................... 2 0 集群...

    nutch配置nutch-default.xml

    nutch配置nutch-default.xml

    Nutch中文教程nutcher.zip

    nutcher致力于为nutch提供一个较新的中文教程和文档,供开发者学习。 github地址: https://github.com/CrawlScript/nutcher 目录: Nutch教程——导入Nutch工程,执行完整爬取 ...

    nutch学习笔记之第一天初学

    ### Nutch 学习笔记之第一天初学 在IT领域,特别是搜索引擎开发和技术研究方向,Apache Nutch无疑是一个值得关注的开源项目。Nutch是Apache软件基金会的一个子项目,旨在为开发者提供一个高度可扩展且可定制化的...

    apache-nutch-1.7-src.tar.gz

    Apache Nutch是一个强大的开源搜索引擎项目,它主要用于网络爬虫和数据索引。Nutch是由Apache软件基金会开发并维护的,其目标是提供一种可扩展、可靠的全网搜索解决方案。Nutch 1.7是该项目的其中一个稳定版本,包含...

    nutch爬虫系统分析.doc

    2. 存储部分:负责存储抓取到的数据,支持多种数据存储方式,包括Hbase、MongoDB、MySQL等。 3. 搜索部分:负责对抓取到的数据进行搜索和索引,支持多种搜索引擎,包括Apache Solr、Elasticsearch等。 抓取部分 ...

    apache-nutch-1.4-bin.tar.gz

    Apache Nutch 是一款高度可扩展的开源搜索引擎,它主要用于网络数据的抓取和索引。Nutch 的设计目的是为了提供一种高效、可靠且易于维护的解决方案,尤其适用于大数据量的互联网内容处理。在这个"apache-nutch-1.4-...

    Nutch 1.3 学习笔记

    ### Nutch 1.3 学习笔记:深入解析与应用 #### 一、Nutch 1.3:概述与核心功能 Nutch 1.3 是一款强大的、开源的网页抓取工具,专为大规模互联网数据抓取设计。它不仅能够收集网页数据,还能进一步分析、构建索引,...

    nutch入门实例教程.pdf

    - **下载与解压**: 下载 Nutch 的最新稳定版并解压。 - **配置文件修改**: 修改 `conf/nutch-site.xml` 文件以适应本地环境。 - **启动服务**: 使用提供的脚本启动 Nutch 相关服务。 #### 3. Nutch 初体验 - **...

    nutch 搜索模块流程.doc

    首先,Nutch 的搜索模块位于 `nutch.searcher` 包下,它包含了实现搜索功能的所有类和接口。在实际应用中,通常会通过一个简单的 Java 主程序或 Web 应用来调用这些功能。文档中提到的 `nutchjsp` 可能是指一个简单...

    毕业论文-nutch爬虫系统分析.doc

    Nutch 是一个开源的Web爬虫系统,专为大规模网络数据收集而设计,它被广泛应用于搜索引擎、学术研究以及大数据分析等领域。这篇毕业论文详细分析了Nutch爬虫系统的各个方面,旨在深入理解其工作原理和架构。 1. ...

    Lucene+nutch搜索引擎开发.part2.rar

    Lucene nutch 搜索引擎开发 Part2

    Nutch 0.8笔记NUTCHNUTCH

    Nutch 的爬行过程涉及多个步骤,包括使用入口地址、URL 正则表达式和搜索深度限制。Hadoop 的使用使得 Nutch 具备了分布式处理能力。关键类包括: - **Fetcher**:通过多线程运行 FetcherThread,调用适当的 ...

    Lucene+nutch搜索引擎开发.part1.rar

    Lucene nutch 搜索引擎开发 Part1

Global site tag (gtag.js) - Google Analytics