Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 未能在群集部署模式下将Spark应用程序提交到独立Spark群集_Apache Spark_Amazon S3_Deployment - Fatal编程技术网

Apache spark 未能在群集部署模式下将Spark应用程序提交到独立Spark群集

Apache spark 未能在群集部署模式下将Spark应用程序提交到独立Spark群集,apache-spark,amazon-s3,deployment,Apache Spark,Amazon S3,Deployment,我在AWS EC2上以独立模式创建了一个Spark群集。 在部署模式客户端下,一切都运行良好,我可以读写AWS S3。 但在部署模式集群中,它总是失败。 我使用的命令如下所示: ./bin/spark-submit \ --class ... \ --master spark://...:7077 \ # I also tried with 6066 --deploy-mode cluster \ --conf spark.hadoop.fs.s3a.imp

我在AWS EC2上以独立模式创建了一个Spark群集。
在部署模式客户端下,一切都运行良好,我可以读写AWS S3。
但在部署模式集群中,它总是失败。
我使用的命令如下所示:

  ./bin/spark-submit  \
    --class ... \
    --master spark://...:7077 \ # I also tried with 6066
    --deploy-mode cluster \
    --conf spark.hadoop.fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem \
    ... \
    --jars /local/path/to/hadoop-aws-2.7.3.jar,/local/path/to/aws-java-sdk-1.7.4.jar \
    --conf spark.driver.extraClassPath=aws-java-sdk-1.7.4.jar:hadoop-aws-2.7.3.jar \
    --conf spark.executor.extraClassPath=aws-java-sdk-1.7.4.jar:hadoop-aws-2.7.3.jar \
    --verbose \
    /local/path/to/app.jar
错误消息是:

  18/01/17 05:13:39 ERROR ClientEndpoint: Exception from cluster was: java.nio.file.NoSuchFileException: /local/path/to/app.jar
  java.nio.file.NoSuchFileException: /local/path/to/app.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:625)
      at org.apache.spark.util.Utils$.copyFile(Utils.scala:596)
      at org.apache.spark.util.Utils$.doFetchFile(Utils.scala:681)
      at org.apache.spark.util.Utils$.fetchFile(Utils.scala:480)
      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)
根据官方Spark文档,通过指定
--jars
,应该可以让
Spark提交
将我的JAR自动上传到集群,我不需要自己完成。但它似乎并没有像预期的那样起作用

我还尝试将
app.jar
放入AWS S3,这导致另一个问题
java.lang.RuntimeException:java.lang.ClassNotFoundException:Class org.apache.hadoop.fs.s3a.S3AFileSystem未找到
;我还试图让spark通过
--jars
为我上传hadoop aws JAR,但还是失败了


是的,我可以自己将这些罐子scp到集群。我只是想知道,我的用法有什么问题。有人能在这方面给我一些帮助吗?

据我所知,在独立spark安装程序中,您只能作为本地运行