복붙노트

[HADOOP] HADOOP_HOME을 기반으로 HDFS 구성을 자동으로로드 하시겠습니까?

HADOOP

HADOOP_HOME을 기반으로 HDFS 구성을 자동으로로드 하시겠습니까?

이미 실행중인 hadoop 클러스터와 인터페이스하기 위해 Java 프로그램을 작성 중입니다. 프로그램에 환경 변수로 HADOOP_HOME이 전달되었습니다.

이 값을 기반으로 HDFS / MapReduce와 상호 작용하기 전에 필요한 모든 구성 리소스를로드해야합니다. 내가 필요하다고 생각하는 파일은 아파치 문서를 기반으로합니다. 내 현재 솔루션은 다음과 같습니다.

final String HADOOP_HOME = System.getEnv("HADOOP_HOME");
Configuration conf = new Configuration();

conf.addResource(new Path(HADOOP_HOME, "src/core/core-default.xml"));
conf.addResource(new Path(HADOOP_HOME, "src/hdfs/hdfs-default.xml"));
conf.addResource(new Path(HADOOP_HOME, "src/mapred/mapred-default.xml"));
conf.addResource(new Path(HADOOP_HOME, "conf/core-site.xml"));
conf.addResource(new Path(HADOOP_HOME, "conf/hdfs-site.xml"));
conf.addResource(new Path(HADOOP_HOME, "conf/mapred-site.xml"));

FileSystem hdfs = new FileSystem(conf);

더 깔끔한 방법이 있습니까? 각 리소스를 명시 적으로 설정하지 않는 방법이 있습니까?

해결법

  1. ==============================

    1.hadoop jar 를 사용하여 jar을 실행하십시오. 모든 것이 자동으로 설정됩니다.

    hadoop jar 를 사용하여 jar을 실행하십시오. 모든 것이 자동으로 설정됩니다.

  2. from https://stackoverflow.com/questions/9200749/automatically-loading-hdfs-configuration-based-on-hadoop-home by cc-by-sa and MIT license