2016-02-25 46 views
5

,我无法拿起外部jars。我在EMR中运行sparkEMR火花外壳不捡我使用<code>spark-shell</code>罐子

我运行下面的命令:

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

我得到以下错误:

OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0 Warning: Skip remote jar s3://play/emr/release/1.0/code.jar

在此先感谢。

回答

3

这是Apache的火花本身的限制,对EMR没有特别的火花。当运行在客户端部署模式火花(所有交互shell像spark-shellpyspark,或​​没有--deploy-mode cluster--master yarn-cluster),只有本地的jar路径是允许的。

这样做的原因是,为了使星火下载这个远程罐子,它必须已经在运行的Java代码,此时为时已晚的jar添加到自己的类路径。

解决方法是将本地下载JAR(使用AWS S3 CLI),然后运行火花外壳时指定的本地路径或火花提交。

2

您可以在EMR盒本身火花shell命令行做到这一点:

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

您也可以拨打使用AWS的Java EMR客户端库或AWS CLI命令。关键是要使用:“--deploy模式集群”

+0

由于某种原因,这不适合我。我在EMR-5.6.0/Spark-2.1.1上。在什么版本的EMR/Spark中为您工作? –

0

曾有同样的问题,你可以加上“--master纱--deploy模式集群”指定参数和它将允许你远程执行S3罐子

+0

我似乎不需要' - 主纱'部分 – swdev