복붙노트

[HADOOP] 원반 클러스터에서 실행중인 스파크 작업 java.io.FileNotFoundException : 파일이 마스터 노드에서 종료 되더라도 파일이 존재하지 않습니다.

HADOOP

원반 클러스터에서 실행중인 스파크 작업 java.io.FileNotFoundException : 파일이 마스터 노드에서 종료 되더라도 파일이 존재하지 않습니다.

나는 스파크에 상당히 새로운 사람이다. 검색을 시도했지만 적절한 해결책을 얻을 수 없었습니다. hadoop 2.7.2를 두 개의 상자 (하나의 마스터 노드와 다른 작업자 노드)에 설치했습니다. 아래 링크를 따라 클러스터를 설정했습니다. http://javadev.org/docs/hadoop/centos/6/installation/multi- 노드 설치시 - centos-6-non-sucure-mode / 나는 클러스터를 테스트하기 위해 root 사용자로 hadoop 및 spark 응용 프로그램을 실행하고있었습니다.

마스터 노드에 스파크를 설치했는데 스파크가 오류없이 시작되었습니다. 그러나 spark 제출을 사용하여 작업을 제출할 때 오류가있는 동일한 위치의 마스터 노드에 파일이 있어도 File Not Found 예외가 발생합니다. Spark Submit 명령 아래에서 실행 중이며 아래의 로그 출력을 찾으십시오. 명령.

/bin/spark-submit  --class com.test.Engine  --master yarn --deploy-mode      cluster /app/spark-test.jar
16/04/21 19:16:13 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/04/21 19:16:13 INFO RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
16/04/21 19:16:14 INFO Client: Requesting a new application from cluster with 1 NodeManagers
16/04/21 19:16:14 INFO Client: Verifying our application has not requested more than the maximum memory capability of the cluster (8192 MB per container)
16/04/21 19:16:14 INFO Client: Will allocate AM container, with 1408 MB memory including 384 MB overhead
16/04/21 19:16:14 INFO Client: Setting up container launch context for our AM
16/04/21 19:16:14 INFO Client: Setting up the launch environment for our AM container
16/04/21 19:16:14 INFO Client: Preparing resources for our AM container
16/04/21 19:16:14 INFO Client: Source and destination file systems are the same. Not copying file:/mi/spark/lib/spark-assembly-1.6.1-hadoop2.6.0.jar
16/04/21 19:16:14 INFO Client: Source and destination file systems are the same. Not copying file:/app/spark-test.jar
16/04/21 19:16:14 INFO Client: Source and destination file systems are the same. Not copying file:/tmp/spark-120aeddc-0f87-4411-9400-22ba01096249/__spark_conf__5619348744221830008.zip
16/04/21 19:16:14 INFO SecurityManager: Changing view acls to: root
16/04/21 19:16:14 INFO SecurityManager: Changing modify acls to: root
16/04/21 19:16:14 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(root); users with modify permissions: Set(root)
16/04/21 19:16:15 INFO Client: Submitting application 1 to ResourceManager
16/04/21 19:16:15 INFO YarnClientImpl: Submitted application application_1461246306015_0001
16/04/21 19:16:16 INFO Client: Application report for application_1461246306015_0001 (state: ACCEPTED)
16/04/21 19:16:16 INFO Client: 
     client token: N/A
     diagnostics: N/A
     ApplicationMaster host: N/A
     ApplicationMaster RPC port: -1
     queue: default
     start time: 1461246375622
     final status: UNDEFINEDsparkcluster01.testing.com
     tracking URL: http://sparkcluster01.testing.com:8088/proxy/application_1461246306015_0001/
     user: root
16/04/21 19:16:17 INFO Client: Application report for application_1461246306015_0001 (state: ACCEPTED)
16/04/21 19:16:18 INFO Client: Application report for application_1461246306015_0001 (state: ACCEPTED)
16/04/21 19:16:19 INFO Client: Application report for application_1461246306015_0001 (state: ACCEPTED)
16/04/21 19:16:20 INFO Client: Application report for application_1461246306015_0001 (state: ACCEPTED)
16/04/21 19:16:21 INFO Client: Application report for application_1461246306015_0001 (state: FAILED)
16/04/21 19:16:21 INFO Client: 
     client token: N/A
     diagnostics: Application application_1461246306015_0001 failed 2 times due to AM Container for appattempt_1461246306015_0001_000002 exited with  exitCode: -1000
For more detailed output, check application tracking page:http://sparkcluster01.testing.com:8088/cluster/app/application_1461246306015_0001Then, click on links to logs of each attempt.
Diagnostics: java.io.FileNotFoundException: File file:/app/spark-test.jar does not exist
Failing this attempt. Failing the application.
     ApplicationMaster host: N/A
     ApplicationMaster RPC port: -1
     queue: default
     start time: 1461246375622
     final status: FAILED
     tracking URL: http://sparkcluster01.testing.com:8088/cluster/app/application_1461246306015_0001
     user: root
Exception in thread "main" org.ap/app/spark-test.jarache.spark.SparkException: Application application_1461246306015_0001 finished with failed status
    at org.apache.spark.deploy.yarn.Client.run(Client.scala:1034)
    at org.apache.spark.deploy.yarn.Client$.main(Client.scala:1081)
    at org.apache.spark.deploy.yarn.Client.main(Client.scala)
    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)

HDFS 파일 시스템에서 스파크를 실행하려고 시도해도 내 응용 프로그램을 HDFS에 배치하고 Spark Submit 명령에서 HDFS 경로를 제공하기까지했습니다. 그럼에도 불구하고 Spark Conf 파일에서 던진 파일을 찾을 수 없음 예외가 발생했습니다. Spark Submit 명령 아래에서 실행 중이며 명령 아래에 로그 출력을 찾으십시오.

 ./bin/spark-submit  --class com.test.Engine  --master yarn --deploy-mode cluster hdfs://sparkcluster01.testing.com:9000/beacon/job/spark-test.jar
16/04/21 18:11:45 INFO RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
16/04/21 18:11:46 INFO Client: Requesting a new application from cluster with 1 NodeManagers
16/04/21 18:11:46 INFO Client: Verifying our application has not requested more than the maximum memory capability of the cluster (8192 MB per container)
16/04/21 18:11:46 INFO Client: Will allocate AM container, with 1408 MB memory including 384 MB overhead
16/04/21 18:11:46 INFO Client: Setting up container launch context for our AM
16/04/21 18:11:46 INFO Client: Setting up the launch environment for our AM container
16/04/21 18:11:46 INFO Client: Preparing resources for our AM container
16/04/21 18:11:46 INFO Client: Source and destination file systems are the same. Not copying file:/mi/spark/lib/spark-assembly-1.6.1-hadoop2.6.0.jar
16/04/21 18:11:47 INFO Client: Uploading resource hdfs://sparkcluster01.testing.com:9000/beacon/job/spark-test.jar -> file:/root/.sparkStaging/application_1461234217994_0017/spark-test.jar
16/04/21 18:11:49 INFO Client: Source and destination file systems are the same. Not copying file:/tmp/spark-f4eef3ac-2add-42f8-a204-be7959c26f21/__spark_conf__6818051470272245610.zip
16/04/21 18:11:50 INFO SecurityManager: Changing view acls to: root
16/04/21 18:11:50 INFO SecurityManager: Changing modify acls to: root
16/04/21 18:11:50 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(root); users with modify permissions: Set(root)
16/04/21 18:11:50 INFO Client: Submitting application 17 to ResourceManager
16/04/21 18:11:50 INFO YarnClientImpl: Submitted application application_1461234217994_0017
16/04/21 18:11:51 INFO Client: Application report for application_1461234217994_0017 (state: ACCEPTED)
16/04/21 18:11:51 INFO Client: 
     client token: N/A
     diagnostics: N/A
     ApplicationMaster host: N/A
     ApplicationMaster RPC port: -1
     queue: default
     start time: 1461242510849
     final status: UNDEFINED
     tracking URL: http://sparkcluster01.testing.com:8088/proxy/application_1461234217994_0017/
     user: root
16/04/21 18:11:52 INFO Client: Application report for application_1461234217994_0017 (state: ACCEPTED)
16/04/21 18:11:53 INFO Client: Application report for application_1461234217994_0017 (state: ACCEPTED)
16/04/21 18:11:54 INFO Client: Application report for application_1461234217994_0017 (state: FAILED)
16/04/21 18:11:54 INFO Client: 
     client token: N/A
     diagnostics: Application application_1461234217994_0017 failed 2 times due to AM Container for appattempt_1461234217994_0017_000002 exited with  exitCode: -1000
For more detailed output, check application tracking page:http://sparkcluster01.testing.com:8088/cluster/app/application_1461234217994_0017Then, click on links to logs of each attempt.
Diagnostics: File file:/tmp/spark-f4eef3ac-2add-42f8-a204-be7959c26f21/__spark_conf__6818051470272245610.zip does not exist
java.io.FileNotFoundException: File file:/tmp/spark-f4eef3ac-2add-42f8-a204-be7959c26f21/__spark_conf__6818051470272245610.zip does not exist
    at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:609)
    at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:822)
    at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:599)
    at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:421)
    at org.apache.hadoop.yarn.util.FSDownload.copy(FSDownload.java:253)
    at org.apache.hadoop.yarn.util.FSDownload.access$000(FSDownload.java:63)
    at org.apache.hadoop.yarn.util.FSDownload$2.run(FSDownload.java:361)
    at org.apache.hadoop.yarn.util.FSDownload$2.run(FSDownload.java:359)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
    at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:358)
    at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:62)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Failing this attempt. Failing the application.
     ApplicationMaster host: N/A
     ApplicationMaster RPC port: -1
     queue: default
     start time: 1461242510849
     final status: FAILED
     tracking URL: http://sparkcluster01.testing.com:8088/cluster/app/application_1461234217994_0017
     user: root
Exception in thread "main" org.apache.spark.SparkException: Application application_1461234217994_0017 finished with failed status
    at org.apache.spark.deploy.yarn.Client.run(Client.scala:1034)
    at org.apache.spark.deploy.yarn.Client$.main(Client.scala:1081)
    at org.apache.spark.deploy.yarn.Client.main(Client.scala)
    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)
16/04/21 18:11:55 INFO ShutdownHookManager: Shutdown hook called
16/04/21 18:11:55 INFO ShutdownHookManager: Deleting directory /tmp/spark-f4eef3ac-2add-42f8-a204-be7959c26f21

해결법

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

    1.스파크 구성이 오른쪽 hadoop Configuration 디렉토리를 가리키고 있지 않습니다. 2.7.2에 대한 hadoop 설정은 /root/hadoop2.7.2/conf보다는 hadoop 2.7.2./etc/hadoop/ 파일 경로에 있습니다. 내가 HADOOP_CONF_DIR = / root / hadoop2.7.2 / etc / hadoop /을 spark-env.sh 아래로 가리키면 spark가 작동을 시작하고 File not found exception이 사라졌습니다. 이전에는 /root/hadoop2.7.2/conf (종료하지 않음)를 가리키고있었습니다. spark이 적절한 hadoop 구성 디렉토리를 가리 키지 않으면 유사한 오류가 발생할 수 있습니다. 스파크 버그라고 생각합니다. 모호한 오류 메시지를 던지기보다는 우아하게 처리해야합니다.

    스파크 구성이 오른쪽 hadoop Configuration 디렉토리를 가리키고 있지 않습니다. 2.7.2에 대한 hadoop 설정은 /root/hadoop2.7.2/conf보다는 hadoop 2.7.2./etc/hadoop/ 파일 경로에 있습니다. 내가 HADOOP_CONF_DIR = / root / hadoop2.7.2 / etc / hadoop /을 spark-env.sh 아래로 가리키면 spark가 작동을 시작하고 File not found exception이 사라졌습니다. 이전에는 /root/hadoop2.7.2/conf (종료하지 않음)를 가리키고있었습니다. spark이 적절한 hadoop 구성 디렉토리를 가리 키지 않으면 유사한 오류가 발생할 수 있습니다. 스파크 버그라고 생각합니다. 모호한 오류 메시지를 던지기보다는 우아하게 처리해야합니다.

  2. ==============================

    2.EMR에서 실행되는 Spark와 비슷한 오류가 발생했습니다. 나는 스파크 코드를 Java 8로 작성했으며 EMR 클러스터에서는 기본적으로 Java 8에서 spark를 실행합니다. 그런 다음 Java 8 버전을 가리키는 JAVA_HOME을 사용하여 클러스터를 다시 작성해야했습니다. 내 문제가 해결되었습니다. 비슷한 줄을 확인하십시오.

    EMR에서 실행되는 Spark와 비슷한 오류가 발생했습니다. 나는 스파크 코드를 Java 8로 작성했으며 EMR 클러스터에서는 기본적으로 Java 8에서 spark를 실행합니다. 그런 다음 Java 8 버전을 가리키는 JAVA_HOME을 사용하여 클러스터를 다시 작성해야했습니다. 내 문제가 해결되었습니다. 비슷한 줄을 확인하십시오.

  3. ==============================

    3.비슷한 문제가 있었지만 문제는 두 개의 core-site.xml이 $ HADOOP_CONF_DIR에 있고 다른 하나는 $ SPARK_HOME / conf에있는 것과 관련이있었습니다. $ SPARK_HOME / conf 아래에서 제거했을 때 문제가 사라졌습니다.

    비슷한 문제가 있었지만 문제는 두 개의 core-site.xml이 $ HADOOP_CONF_DIR에 있고 다른 하나는 $ SPARK_HOME / conf에있는 것과 관련이있었습니다. $ SPARK_HOME / conf 아래에서 제거했을 때 문제가 사라졌습니다.

  4. ==============================

    4.원사 클러스터 모드로 실행할 때마다 로컬 파일을 모든 노드에 배치해야합니다. 왜냐하면 어떤 노드가 AM (응용 프로그램 마스터) 노드가 될지 모르기 때문입니다. 응용 프로그램은 항상 AM 노드에서 파일을 찾습니다.

    원사 클러스터 모드로 실행할 때마다 로컬 파일을 모든 노드에 배치해야합니다. 왜냐하면 어떤 노드가 AM (응용 프로그램 마스터) 노드가 될지 모르기 때문입니다. 응용 프로그램은 항상 AM 노드에서 파일을 찾습니다.

    필자는 런타임 동안 스파크 작업에 의해 읽혀지는 파일에 KeyStore와 KeyPass 암호를 보관해야하는 상황에 처했습니다. / opt / datapipeline / config / keystorePass로 / opt 폴더 아래에 파일을 보관했습니다. 하지만 내 응용 프로그램은 FileNotFoundException로 계속 실패합니다.

    모든 노드에 keystorePass 파일을두면 예외가 사라지고 작업이 성공했습니다.

    다른 방법은 로컬 파일 시스템이 아닌 hdfs 파일 시스템에 파일을 보관하는 것입니다.

  5. from https://stackoverflow.com/questions/36753546/spark-job-running-on-yarn-cluster-java-io-filenotfoundexception-file-does-not-e by cc-by-sa and MIT license