2016-07-20 2 views
2

yarn 모드에서 스파크 제출을 사용하여 hadoop 클러스터에서 스파크 작업을 시작하려고합니다.스파크 제출 YARN 모드 HADOOP_CONF_DIR 내용

내 개발 컴퓨터에서 spark-submit을 시작합니다.

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

답변

7

1) 작업 제출시 Spark는 연결 대상을 알아야합니다. 파일이 파싱되며 Hadoop 클러스터에 연결하는 데 필요한 구성이 사용됩니다. 문서에서 그들은 클라이언트 측 구성 (첫 번째 문장의 오른쪽)이라고 말합니다. 실제로 파일의 클러스터에 연결하기 위해 모든 구성이 필요하지는 않습니다 (보안되지 않은 Hadoop 클러스터에 연결하기 위해). 미니멀 한 구성)은 적어도 현재 다음 CONFIGS 필요합니다

  • fs.defaultFS (경우
  • dfs.nameservices
  • yarn.resourcemanager.hostname 또는 yarn.resourcemanager.address
  • ) HDFS에서 읽을 당신이 의도에
  • (다른 사람들은 구성에 따라해야 할 수도 있습니다)

당신은 당신이 제출하는 작업의 코드에서 동일한 설정을 설정하여, 파일을 것을 방지 할 수 있습니다

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

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

3)로 구성 폴더 채워야 :

  • 코어를 site.xml
  • 원사를 site.xml
  • HDFS-site.xml의
  • mapred-site.xml의

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

+0

정말 고마워요. 나는이 문제에 대해 잠시 동안 머리를 감싸려고 노력했다. 문서는 충분히 명확하지만 몇 가지 유스 케이스가 있으며 몇 가지 사항이 섞여있다. 나는 좋은 요약을 정말로 필요로했다 :-) – NotGaeL

+0

'mapred-site'는 Spark에 필요하다 ?? –

+0

@ cricket_007 원칙적으로 그렇지 않습니다. 빨리 시험하고보고 할 것입니다. – Serhiy

관련 문제