복붙노트

[HADOOP] Spark YARN 모드 HADOOP_CONF_DIR 콘텐츠 제출

HADOOP

Spark YARN 모드 HADOOP_CONF_DIR 콘텐츠 제출

나는 YARN 모드에서 spark submit을 사용하여 hadoop 클러스터에서 스파크 작업을 시작하려고합니다.

내 개발 기계에서 스파크 제출을 시작합니다.

YARN 문서에서 Running Spark에 따르면, env var HADOOP_CONF_DIR 또는 YARN_CONF_DIR에 hadoop 클러스터 구성을위한 경로를 제공해야합니다. 작업이 원격 YARN 서비스로 전송되는 경우이 폴더가 로컬 컴퓨터에 있어야하는 이유는 무엇입니까? 이것은 spark-submit이 클러스터 안에 있어야한다는 것을 의미합니까? 따라서 spark 작업을 원격으로 시작할 수 없습니까? 그렇지 않은 경우이 폴더를 어떻게 채워야합니까? 작업 관리자 서비스가있는 YARN 클러스터 노드에서 hadoop 구성 폴더를 복사해야합니까?

해결법

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

    1.1) 작업 제출시 Spark는 연결 대상을 알아야합니다. 파일이 파싱되며 Hadoop 클러스터에 연결하는 데 필요한 구성이 사용됩니다. 문서에서 클라이언트 쪽 구성 (첫 번째 문장의 오른쪽에 있음)은 실제로 파일의 클러스터에 연결하기 위해 모든 구성을 필요로하지 않는다는 것을 의미합니다 (최소한의 구성으로 보안되지 않은 Hadoop 클러스터에 연결하기 위해). ) 최소한 다음 configs가 필요합니다 :

    1) 작업 제출시 Spark는 연결 대상을 알아야합니다. 파일이 파싱되며 Hadoop 클러스터에 연결하는 데 필요한 구성이 사용됩니다. 문서에서 클라이언트 쪽 구성 (첫 번째 문장의 오른쪽에 있음)은 실제로 파일의 클러스터에 연결하기 위해 모든 구성을 필요로하지 않는다는 것을 의미합니다 (최소한의 구성으로 보안되지 않은 Hadoop 클러스터에 연결하기 위해). ) 최소한 다음 configs가 필요합니다 :

    제출할 작업의 코드에 동일한 설정을 지정하여 파일이 저장되는 것을 방지 할 수 있습니다.

    SparkConf sparkConfiguration = new SparkConf();
    sparkConfiguration.set("spark.hadoop.fs.defaultFS", "...");
    ...
    

    2) 스파크 제출은 클러스터에 연결하는 방법을 알고있는 한 클러스터에있는 시스템이 아닌 모든 시스템에 위치 할 수 있습니다 (설치 프로그램을 설치하지 않고 Eclipse에서 제출할 수도 있지만 프로젝트 관련 사항은 Spark와 관련됨) .

    3) 다음과 같이 구성 폴더를 채워야합니다.

    서버에서 파일을 복사하는 것이 가장 쉬운 방법입니다. 스파크 제출에 필요하지 않거나 보안에 민감한 일부 구성을 제거 할 수 있습니다.

  2. from https://stackoverflow.com/questions/38482779/spark-submit-yarn-mode-hadoop-conf-dir-contents by cc-by-sa and MIT license