Nutch 사용 입문 (3) - 프로필 불 러 오기

/** 
 *      ,             。  ! 
 *          ,    ,   。
 **/ 

 Nutch 의 설정 파일 은 주로 세 가지 종류 가 있 습 니 다.
1. Hadoop 의 프로필, Hadoop - default. xml 과 Hadoop - site. xml.
2. Nutch 의 프로필, Nutch - default. xml 과 Nutch - site. xml.
3. Nutch 플러그 인의 설정 파일 입 니 다. 이 플러그 인의 설정 파일 들 은 플러그 인 을 불 러 올 때 filter 와 같은 플러그 인 에서 자동 으로 불 러 옵 니 다.
 
프로필 의 로드 순 서 는 프로필 의 우선 순 위 를 결정 합 니 다. 먼저 불 러 온 프로필 의 우선 순위 가 낮 고 나중에 불 러 온 프로필 의 우선 순위 가 높 으 며 우선 순위 가 낮은 설정 은 우선 순위 가 높 은 설정 으로 덮어 씁 니 다.따라서 Nutch 프로필 을 불 러 오 는 순 서 를 알 아 보 는 것 은 Nutch 를 배 우 는 데 필수 적 입 니 다.다음은 Nutch 소스 코드 에 대한 분석 을 통 해 Nutch 가 프로필 을 불 러 오 는 과정 을 살 펴 보 겠 습 니 다.
 
Nutch 1.0 사용 입문 (1) Nutch 의 주요 명령 인 crawl 의 사용 을 소 개 했 습 니 다. 다음은 crawl 의 main 클래스 (org. apache. nutch. crawl. Crawl) 의 main 방법 부터 분석 하 겠 습 니 다.
 
Crawl 클래스 main 방법 에서 프로필 을 불 러 오 는 원본 코드 는 다음 과 같 습 니 다.
 
Configuration conf = NutchConfiguration.create();
    conf.addResource("crawl-tool.xml");
    JobConf job = new NutchJob(conf);

 
위 코드 에서 NutchConfiguration 클래스 의 대상 이 생 성 되 었 습 니 다. NutchConfiguration 은 Nutch 가 자신의 프로필 을 관리 하 는 클래스 이 고 Configuration 은 Hadoop 이 자신의 프로필 을 관리 하 는 클래스 입 니 다. 다음은 NutchConfiguration 클래스 의 create () 방법 으로 들 어 갑 니 다.
 
 /** Create a {@link Configuration} for Nutch. */
  public static Configuration create() {
    Configuration conf = new Configuration();
    addNutchResources(conf);
    return conf;
  }

 
create () 방법 에서 선생 은 Configuration 클래스 의 대상 이 되 었 습 니 다. Configuration 클래스 의 원본 코드 를 보십시오.
 
 /** A new configuration. */
  public Configuration() {
    this(true);
  }

  /** A new configuration where the behavior of reading from the default 
   * resources can be turned off.
   * 
   * If the parameter {@code loadDefaults} is false, the new instance
   * will not load resources from the default files. 
   * @param loadDefaults specifies whether to load from the default files
   */
  public Configuration(boolean loadDefaults) {
    if (LOG.isDebugEnabled()) {
      LOG.debug(StringUtils.stringifyException(new IOException("config()")));
    }
    if (loadDefaults) {
      resources.add("hadoop-default.xml");
      resources.add("hadoop-site.xml");
    }
  }

 
위 코드 에서 알 수 있 듯 이 Configuration 대상 을 만 들 때 hadop - default. xml 과 hadop - site. xml 두 프로필 을 순서대로 불 러 옵 니 다. 따라서 Hadoop - site. xml 의 설정 은 hadop - default. xml 의 설정 을 덮어 씁 니 다. Hadoop 프로필 의 추가 로드 를 알 고 방금 create () 로 돌아 갑 니 다.방법 안에 있 습 니 다. Configuration 대상 을 만 든 후 addNutchResources (conf) 방법 을 호출 합 니 다.
 
/** Add the standard Nutch resources to {@link Configuration}. */
  public static Configuration addNutchResources(Configuration conf) {
    conf.addResource("nutch-default.xml");
    conf.addResource("nutch-site.xml");
    return conf;
  }

 
nutch - default. xml 파일 을 먼저 불 러 온 다음 nutch - site. xml 파일 을 불 러 왔 습 니 다. 따라서 nutch - site. xml 의 설정 은 nutch - default. xml 의 설정 을 덮어 씁 니 다. 다음은 crawl 류 의 main 방법 으로 돌아 가 계속 내 려 다 보 겠 습 니 다. conf. addResource ("crawl - tool. xml") 를 호출 했 습 니 다. 이것 은 crawl - tool. xml 설정 파일 이 마지막 으로 불 러 온 것 을 보 여 줍 니 다.
 
위의 간단 한 소스 코드 분석 을 통 해 우 리 는 Nutch 프로필 의 우선 순 위 를 알 수 있 습 니 다.
Nutch 자신의 프로필: crawl - tool. xml  >  nutch-site.xml  >  nutch-default.xml
hadop 설정 파일: hadop - site. xml   >  hadoop-default.xml
 
물론, nutch 의 프로필 이 Hadoop 의 프로필 에 불 러 오기 때문에 nutch 의 프로필 도 Hadoop 프로필 의 설정 을 덮어 씁 니 다. 전체 프로필 이 아 닌 단독 Property 를 덮어 쓰 는 것 을 알 아야 합 니 다.

좋은 웹페이지 즐겨찾기