【问题标题】:EMR spark-shell not picking up jarsEMR spark-shell 不拾取罐子
【发布时间】:2016-06-08 16:46:32
【问题描述】:

我正在使用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

提前致谢。

【问题讨论】:

    标签: amazon-s3 apache-spark emr


    【解决方案1】:

    这是 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 时指定本地路径。

    【讨论】:

      【解决方案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 客户端库或 AWS CLI 调用此命令。关键是使用:'--deploy-mode cluster'

      【讨论】:

      • 出于某种原因,这对我不起作用。我在 EMR-5.6.0/Spark-2.1.1 上。在哪个版本的 EMR/Spark 上对您有用?
      【解决方案3】:

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

      【讨论】:

      • 我似乎不需要--master yarn 部分
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      相关资源
      最近更新 更多