복붙노트

[HADOOP] yarn.log.dir은 어디에 정의되어 있습니까?

HADOOP

yarn.log.dir은 어디에 정의되어 있습니까?

Apache Hadoop 3.0.0의 yarn-default.xml에서 yarn.nodemanager.log-dirs의 기본값은 $ {yarn.log.dir} / userlogs로 표시됩니다.

yarn.log.dir은 어디에 정의되어 있습니까? 기본값이 있습니까?

기본 구성 (core-default.xml, hdfs-default.xml, mapred-default.xml, yarn-default.xml)에서 찾지 못했습니다.

나는 환경 스크립트 (hadoop-env.sh, httpfs-env.sh, kms-env.sh, mapred-env.sh, yarn-env.sh)에서 언급하지 않았습니다.

"yarn.nodemanager.log-dirs"에 대한 코드를 grep하면 그것이 표시되는 유일한 장소는 임의의 Java 코드가 아닌 yarn-default.xml 및 markdown 파일에 있다는 것입니다. 따라서 yarn.nodemanager.log-dirs 설정은 어떻게 작동합니까?

해결법

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

    1.yarn.log.dir은 -D 플래그를 기반으로하는 Java 특성입니다.

    yarn.log.dir은 -D 플래그를 기반으로하는 Java 특성입니다.

    yarn-env.sh에서 YARN_LOG_DIR이 표시되어야합니다.

    # default log directory and file
    if [ "$YARN_LOG_DIR" = "" ]; then
      YARN_LOG_DIR="$HADOOP_YARN_HOME/logs"
      ...
    fi
    
    YARN_OPTS="$YARN_OPTS -Dyarn.log.dir=$YARN_LOG_DIR"
    
  2. from https://stackoverflow.com/questions/48693607/where-is-yarn-log-dir-defined by cc-by-sa and MIT license