我在独立模式下在AWS EC2上创建了一个Spark群集
一切都在--deploy-mode client
中运行良好 - 我可以读取和写入AWS S3
但在--deploy-mode cluster
中,它总是失败
我使用的命令如下:
./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文档Submitting Applications
,应该可以让spark-submit
通过指定--jars
自动将我的jar上传到群集,我也不需要自己做。但似乎它并没有像预期的那样发挥作用。
我还试图将app.jar
放到AWS S3上,导致另一个问题java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3a.S3AFileSystem not found
;我还尝试让spark-submit
通过--jars
为我上传hadoop-aws jars,但仍然失败了。
是的,我可以自己把这些罐子塞进集群。我只是想知道,我的用法有什么问题。有人可以帮我一点吗?
答案 0 :(得分:0)
根据我在独立火花设置方面的知识,您只能以本地方式运行。