복붙노트

[HADOOP] 는 하둡 코어-site.xml 파일을 찾을 수 없기 때문에 스파크 작업이 실패합니다

HADOOP

는 하둡 코어-site.xml 파일을 찾을 수 없기 때문에 스파크 작업이 실패합니다

나는 스파크 작업을 실행하기 위해 노력하고있어 나는 드라이버를 시작하려고하면이 오류를 받고 있어요 :

16/05/17 14:21:42 ERROR SparkContext: Error initializing SparkContext.
java.io.FileNotFoundException: Added file file:/var/lib/mesos/slave/slaves/0c080f97-9ef5-48a6-9e11-cf556dfab9e3-S1/frameworks/5c37bb33-20a8-4c64-8371-416312d810da-0002/executors/driver-20160517142123-0183/runs/802614c4-636c-4873-9379-b0046c44363d/core-site.xml does not exist.
    at org.apache.spark.SparkContext.addFile(SparkContext.scala:1364)
    at org.apache.spark.SparkContext.addFile(SparkContext.scala:1340)
    at org.apache.spark.SparkContext$$anonfun$15.apply(SparkContext.scala:491)
    at org.apache.spark.SparkContext$$anonfun$15.apply(SparkContext.scala:491)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:491)
    at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:59)
    at com.spark.test.SparkJobRunner.main(SparkJobRunner.java:56)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

나는 스파크 내 메소 클러스터의 일부 여러 서버에서 실행이 (확실하지 맞아요하지만 내가 뭘 기능) 나는 또한 하둡이 서버에서 실행되고 있습니다. 나는 하나 개의 서버에 스파크 마스터를 시작하고 다른 서버에 스파크 노예를 시작했다. 나는 그것이 중요하지 않는 것이 3 애플 리케이션을 가지고 있지만, 나는 사용자가 스파크 작업을 킥오프 수있는 UI를 가지고, 그것은 내가 SparkLauncher를 사용하여 스파크 작업을 생성하는 실행기 응용 프로그램을 가지고, 카프카 큐에 작업을 넣습니다 (참조 다음 아래 코드)와 나는 카프카 큐에 연결 한 후 UI에서 보낸 요청을 처리하는 내 스파크 드라이버를 가지고있다. UI를하고 실행 마라톤에서 실행하고 있습니다. 위에서 언급 한 바와 같이 스파크는 클러스터에 자신의 과정을하고 드라이버는 작업을 실행 촉발 연결합니다. 편집 : 나는 내 스파크 상황에서 그들에게 하둡 및 지점 HDFS-site.xml의 핵심-site.xml 파일 및 spark-env.sh을 업로드 한 :

SparkConf conf = new SparkConf()
                .setAppName(config.getString(SPARK_APP_NAME))
                .setMaster(sparkMaster)
                .setExecutorEnv("HADOOP_USER_NAME", config.getString(HADOOP_USER, ""))
                .set("spark.mesos.uris", "<hadoop node>:9000/config/core-site.xml,<hadoop node>:9000/config/hdfs-site.xml") 
                .set("spark.files", "core-site.xml,hdfs-site.xml,spark-env.sh") 
                .set("spark.mesos.coarse", "true")
                .set("spark.cores.max", config.getString(SPARK_CORES_MAX))
                .set("spark.driver.memory", config.getString(SPARK_DRIVER_MEMORY))
                .set("spark.driver.extraJavaOptions", config.getString(SPARK_DRIVER_EXTRA_JAVA_OPTIONS, ""))
                .set("spark.executor.memory", config.getString(SPARK_EXECUTOR_MEMORY))
                .set("spark.executor.extraJavaOptions", config.getString(SPARK_EXECUTOR_EXTRA_JAVA_OPTIONS))
                .set("spark.executor.uri", hadoopPath);

여기에 드라이버를 시작하는 코드는 다음과 같습니다

SparkLauncher launcher = new SparkLauncher()
            .setMaster(<my spark/mesos master>)
            .setDeployMode("cluster")
            .setSparkHome("/home/spark")
            .setAppResource(<hdfs://path/to/a/spark.jar>)
            .setMainClass(<my main class>);
handle = launcher.startApplication();

난 내가 그냥 무엇을 알아낼 수 없습니다 뭔가를 잘못하고 있어요 확신합니다. 나는, 하둡과 메소를 촉발, 그래서 내가 잘못 무엇을 지적 주시기 새로운 해요.

해결법

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

    1.내 문제는 내가 클러스터의 각 서버에서 $ SPARK_HOME /의 HADOOP_CONF_DIR이 spark-env.sh 설정하지 않은 것이 었습니다. 나는 제대로 시작하는 내 스파크 작업을 얻을 수 있었다 설정하면. 나는 또한 내가 "spark.files"로 설정 라인을 제거 나는 SparkConf의 핵심-site.xml의, HDFS-site.xml 파일 또는 spark-env.sh 파일을 포함 할 필요가 없었다 실현

    내 문제는 내가 클러스터의 각 서버에서 $ SPARK_HOME /의 HADOOP_CONF_DIR이 spark-env.sh 설정하지 않은 것이 었습니다. 나는 제대로 시작하는 내 스파크 작업을 얻을 수 있었다 설정하면. 나는 또한 내가 "spark.files"로 설정 라인을 제거 나는 SparkConf의 핵심-site.xml의, HDFS-site.xml 파일 또는 spark-env.sh 파일을 포함 할 필요가 없었다 실현

  2. from https://stackoverflow.com/questions/37286954/spark-job-fails-because-it-cant-find-the-hadoop-core-site-xml by cc-by-sa and MIT license