복붙노트

[HADOOP] 명령 줄에서 원사 구성 가져 오기

HADOOP

명령 줄에서 원사 구성 가져 오기

EMR에서 원사 명령을 사용하여 구성 키를 제공하는 특정 구성 값을 얻을 수있는 방법이 있습니까?

예를 들어 나는 이것을 다음과 같이하고 싶다.

yarn get-config yarn.scheduler.maximum-allocation-mb

해결법

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

    1.조금 비 직관적이지만, hdfs getconf 명령은 HDFS뿐만 아니라 YARN 및 MapReduce의 구성 등록 정보를 확인할 수 있습니다.

    조금 비 직관적이지만, hdfs getconf 명령은 HDFS뿐만 아니라 YARN 및 MapReduce의 구성 등록 정보를 확인할 수 있습니다.

    > hdfs getconf -confKey fs.defaultFS
    hdfs://localhost:19000
    
    > hdfs getconf -confKey dfs.namenode.name.dir
    file:///Users/chris/hadoop-deploy-trunk/data/dfs/name
    
    > hdfs getconf -confKey yarn.resourcemanager.address
    0.0.0.0:8032
    
    > hdfs getconf -confKey mapreduce.framework.name
    yarn
    

    이 기능을 사용하면 Hadoop에서 실제로 사용되는 모든 구성 등록 정보의 실제 최종 결과를 확인할 수 있습니다. 이는 다음과 같이 XML 파일이나 속성 대체에서 XInclude를 사용하는 것과 같은 고급 구성 패턴을 설명합니다.

      <property>
        <description>The address of the applications manager interface in the RM.</description>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
      </property>
    

    XML 파일을 직접 구문 분석하려고하는 스크립팅 접근법은 Hadoop 내부에서 구현 된 것과 정확하게 일치하지 않을 수 있으므로 Hadoop 자체에 문의하는 것이 좋습니다.

    hdfs 명령이 YARN 및 MapReduce에 대한 구성 등록 정보를 얻을 수있는 이유가 궁금 할 것입니다. 큰 질문입니다! 리플렉션을 통해 생성 된 일부 객체에 MapReduce의 JobConf 인스턴스를 주입해야하는 구현이 다소 우연한 경우입니다. 관련 코드가 여기에 표시됩니다.

    https://github.com/apache/hadoop/blob/release-2.7.1/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ReflectionUtils.java#L82-L114

    이 코드는 hdfs getconf 명령을 실행하는 과정에서 실행됩니다. JobConf에 대한 참조를 트리거함으로써 yarn-default.xml, yarn-site.xml, mapred-default.xml 및 mapred-site.xml을 집합에 추가하는 관련 MapReduce 및 YARN 클래스의 클래스로드 및 정적 초기화를 강제합니다. 구성 파일이 유효합니다.

    구현의 우연한 점이 있기 때문에이 동작 중 일부는 이후 버전에서 변경 될 수 있지만 역 호환성이 없으므로 현재 Hadoop 2.x 행에서 해당 동작을 변경하지 않을 것입니다. Apache Hadoop Compatibility 정책은 주요 버전 라인 내에서 하위 호환성으로 커밋되므로 최소한 2.x 버전 라인에서 계속 작동 할 것이라고 확신 할 수 있습니다.

  2. from https://stackoverflow.com/questions/34666416/get-a-yarn-configuration-from-commandline by cc-by-sa and MIT license