[HADOOP] Spark 어플리케이션에 Yarn 클러스터 구성 추가
HADOOPSpark 어플리케이션에 Yarn 클러스터 구성 추가
spark-submit을 직접 사용하는 대신 scala sbt 응용 프로그램에서 원사에 spark를 사용하려고합니다.
원격 원사 클러스터가 이미 실행 중이고 SparkR에서 spark 작업을 실행하는 원사 클러스터에 연결할 수 있습니다. 그러나 스칼라 어플리케이션에서 비슷한 일을하려고 할 때 환경 변수를 실 구성에로드 할 수없고 대신 기본 실 주소와 포트를 사용할 수 있습니다.
sbt 응용 프로그램은 단순한 객체입니다.
object simpleSparkApp {
def main(args: Array[String]): Unit = {
val conf = new SparkConf()
.setAppName("simpleSparkApp")
.setMaster("yarn-client")
.set("SPARK_HOME", "/opt/spark-1.5.1-bin-hadoop2.6")
.set("HADOOP_HOME", "/opt/hadoop-2.6.0")
.set("HADOOP_CONF_DIR", "/opt/hadoop-2.6.0/etc/hadoop")
val sc = new SparkContext(conf)
}
}
Intellij IDEA에서이 응용 프로그램을 실행하면 로그에 다음과 같이 표시됩니다.
15/11/15 18:46:05 INFO RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
15/11/15 18:46:06 INFO Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
15/11/15 18:46:07 INFO Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
...
0.0.0.0은 원격 원사 자원 관리자 노드의 IP가 아니며 나의 spark-env.sh가 가지고 있기 때문에 환경이 올바르게 추가되지 않은 것 같습니다 :
export JAVA_HOME="/usr/lib/jvm/ibm-java-x86_64-80"
export HADOOP_HOME="/opt/hadoop-2.6.0"
export HADOOP_CONF_DIR="$HADOOP_HOME/etc/hadoop"
export SPARK_MASTER_IP="master"
내 yarn-site.xml에는 다음과 같은 것들이 있습니다.
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
어떻게 올바르게이 sbt Spark 응용 프로그램에 원사 클러스터 구성의 환경 변수를 추가 할 수 있습니까?
추가 정보:
내 시스템은 Ubuntu14.04이며 원사 클러스터에 연결할 수있는 SparkR 코드는 다음과 같습니다.
Sys.setenv(HADOOP_HOME = "/opt/hadoop-2.6.0")
Sys.setenv(SPARK_HOME = "/opt/spark-1.4.1-bin-hadoop2.6")
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))
library(SparkR)
sc <- sparkR.init(master = "yarn-client")
해결법
-
==============================
1.요즘에는 원사 모드의 스파크 제출 사용을 피하기위한 기본 솔루션이 없습니다.
요즘에는 원사 모드의 스파크 제출 사용을 피하기위한 기본 솔루션이 없습니다.
Spark-submit : 작업을 실행하려면 spark-submit을 사용하여 구성된 환경에서 org.apache.spark.deploy.yarn.Client 코드를 실행하십시오 (또는 귀하의 경우처럼 구성되지 않았습니다). 다음은 작업 제출 클라이언트입니다. https://github.com/apache/spark/blob/master/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala
그래도 무슨 해결책이야?
from https://stackoverflow.com/questions/33728640/add-yarn-cluster-configuration-to-spark-application by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브의지도 수집 (0) | 2019.08.05 |
---|---|
[HADOOP] Spark에서 Hdfs에 액세스하면 토큰 캐시 오류가 발생 함 마스터 Kerberos 원칙을 갱신 자로 사용할 수 없음 (0) | 2019.08.05 |
[HADOOP] 하이브에서 'load data inpath'와 'location'의 차이점은 무엇입니까? (0) | 2019.08.05 |
[HADOOP] json 문서의 Avro 직렬화에 문제가 누락되었습니다. (0) | 2019.08.05 |
[HADOOP] HDFS에서 조회 데이터가있는 Kafka 스트림 (0) | 2019.08.05 |