zoukankan      html  css  js  c++  java
  • Fetcher类的工作流程

    Fetcher类工作流程:
    
    FileInputFormat.addInputPath(job, new Path(segment, CrawlDatum.GENERATE_DIR_NAME));
    job.setInputFormat(InputFormat.class);
    
    ----------------第一部分------------------------
    job.setMapRunnerClass(Fetcher.class);
    
    Fetcher类实现了MapRunnable<Text, CrawlDatum, Text, NutchWritable>这个接口,主要完成了生产者的启动与消费者的启动。
    Fetcher extends Configured implements Tool,MapRunnable<Text, CrawlDatum, Text, NutchWritable>
    public void run(RecordReader<Text, CrawlDatum> input,OutputCollector<Text, NutchWritable> output,Reporter reporter){
    	启动生产者
    	feeder = new QueueFeeder(input, fetchQueues, threadCount * queueDepthMuliplier);
    	启动消费者
    	for (int i = 0; i < threadCount; i++) {       // spawn threads
          		new FetcherThread(getConf()).start(); 
        	}
    }
    FetcherThread类完成网页的下载,并用如下的方法多路输出。
    
    
    ----------------第二部分:多路输出------------------------
    FileOutputFormat.setOutputPath(job, segment);
    job.setOutputFormat(FetcherOutputFormat.class);/** Splits FetcherOutput entries into multiple map files. */
    output.collect(key, new NutchWritable(datum));
    output.collect(key, new NutchWritable(content));
    output.collect(url, new NutchWritable(new ParseImpl(new ParseText(parse.getText()),parseData, parse.isCanonical())));
    
  • 相关阅读:
    HDU 1800 Flying to the Mars 字典树,STL中的map ,哈希树
    字典树 HDU 1075 What Are You Talking About
    字典树 HDU 1251 统计难题
    最小生成树prim算法 POJ2031
    POJ 1287 Networking 最小生成树
    次小生成树 POJ 2728
    最短路N题Tram SPFA
    poj2236 并查集
    POJ 1611并查集
    Number Sequence
  • 原文地址:https://www.cnblogs.com/i80386/p/3334607.html
Copyright © 2011-2022 走看看