Spark: Pi 샘플이 클러스터 모드에서 NoSuchFileException을 발생시킵니다.

Spark: Pi 샘플이 클러스터 모드에서 NoSuchFileException을 발생시킵니다.

Spark 2.3.1 클러스터를 설정했지만 여기에 샘플 SparkPi 작업을 보내는 데 문제가 있습니다.

Running Spark using the REST application submission protocol.
2018-09-06 13:45:53 INFO  RestSubmissionClient:54 - Submitting a request to launch an application in spark://10.0.15.7:7077.
2018-09-06 13:46:04 WARN  RestSubmissionClient:66 - Unable to connect to server spark://10.0.15.7:7077.
Warning: Master endpoint spark://10.0.15.7:7077 was not a REST server. Falling back to legacy submission gateway instead.
2018-09-06 13:46:04 WARN  NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2018-09-06 13:46:10 ERROR ClientEndpoint:70 - Exception from cluster was: java.nio.file.NoSuchFileException: /opt/spark/examples/jars/spark-examples_2.11-2.3.1.jar
java.nio.file.NoSuchFileException: /opt/spark/examples/jars/spark-examples_2.11-2.3.1.jar
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixCopyFile.copy(UnixCopyFile.java:526)
    at sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:253)
    at java.nio.file.Files.copy(Files.java:1274)
    at org.apache.spark.util.Utils$.org$apache$spark$util$Utils$$copyRecursive(Utils.scala:632)
    at org.apache.spark.util.Utils$.copyFile(Utils.scala:603)
    at org.apache.spark.util.Utils$.doFetchFile(Utils.scala:688)
    at org.apache.spark.util.Utils$.fetchFile(Utils.scala:485)
    at org.apache.spark.deploy.worker.DriverRunner.downloadUserJar(DriverRunner.scala:155)
    at org.apache.spark.deploy.worker.DriverRunner.prepareAndRunDriver(DriverRunner.scala:173)
    at org.apache.spark.deploy.worker.DriverRunner$$anon$1.run(DriverRunner.scala:92)

내가 사용하는 제출 스크립트는 다음과 같습니다.

bin/spark-submit \
    --master spark://10.0.15.7:7077 \
    --deploy-mode cluster \
    --name spark-pi \
    --class org.apache.spark.examples.SparkPi \
    --conf spark.kubernetes.container.image=gcr.io/my-project/spark:spark-test \
    --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
    --conf spark.executor.instances=3 \
    /opt/spark/examples/jars/spark-examples_2.11-2.3.1.jar 1000

gcr.io/my-project/spark:spark-test기본값을 사용하여 이미지를 만들었습니다.

bin/docker-image-tool.sh -r gcr.io/my-project -t spark-test build push

/opt/spark/examples/jars/spark-examples_2.11-2.3.1.jar컨테이너에도 마찬가지다 . 확인했습니다:

docker run --rm -it --entrypoint "/bin/ls" gcr.io/my-project/spark:spark-test -l /opt/spark/examples/jars/

내 Spark 클러스터는 Kubernetes에서 실행됩니다. spark://새로운 구성표가 아닌 구성표를 사용하고 있으므로 k8s://https://일반 Spark 클러스터처럼 작동해야 합니다. Spark 웹 UI를 포함하여 IP 및 포트가 표시됩니다.

jar 파일을 찾으려는 위치를 이해할 수 없습니다.

local://스파크 예제에서와 같이 경로 앞에 를 추가하려고 했습니다 .https://spark.apache.org/docs/2.3.1/running-on-kubernetes.htmlspark://하지만 마스터 URL 에서는 작동하지 않으며 No FileSystem for scheme: local예외가 발생합니다.

RBAC는 위의 URL에 따라 구성되며 모든 Pod는 spark서비스 계정을 사용합니다.

아이디어가 부족해요.

관련 정보