EMR火花壳没有捡起罐子

use*_*471 6 amazon-s3 emr apache-spark

我正在使用spark-shell,我无法接收外部jars.我spark在EMR中运行.

我运行以下命令:

spark-shell --jars s3://play/emr/release/1.0/code.jar
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

OpenJDK 64位服务器VM警告:忽略选项MaxPermSize = 512M; 8.0中删除了支持警告:跳过远程jar s3://play/emr/release/1.0/code.jar

提前致谢.

Jon*_*lly 4

这是 Apache Spark 本身的限制,而不是 EMR 上的 Spark 特有的限制。在客户端部署模式下运行 Spark 时(所有交互式 shell,如spark-shellpyspark,或spark-submit不带--deploy-mode cluster--master yarn-cluster),仅允许本地 jar 路径。

原因是,为了让 Spark 下载这个远程 jar,它必须已经在运行 Java 代码,此时将 jar 添加到它自己的类路径中就为时已晚了。

解决方法是在本地下载 jar(使用 AWS S3 CLI),然后在运行 Spark-shell 或 Spark-submit 时指定本地路径。