EMR火花壳没有捡起罐子

时间:2016-02-25 18:25:07

标签: amazon-s3 apache-spark emr

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

我运行以下命令:

spark-shell --jars s3://play/emr/release/1.0/code.jar

我收到以下错误:

  

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

提前致谢。

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:2)

您可以使用EMR框本身上的spark-shell命令行执行此操作:

  

spark-submit --verbose --deploy-mode cluster --class com.your.package.and.Class s3://bucket/path/to/thejar.jar 10

您也可以使用AWS Java EMR Client Library或AWS CLI调用此命令。关键是使用:' - deploy-mode cluster'

答案 2 :(得分:0)

有同样的问题,你可以添加“--master yarn --deploy-mode cluster”args,它可以让你远程执行s3 jar