scala - AWS EMR 添加步骤 : How to add multiple jars from s3 in --jars and --driver-class-path options?

标签 scala amazon-web-services apache-spark amazon-emr spark-submit

因此,我尝试使用 spark-submit 在 AWS EMR 上以 cluster 模式运行 Apache Spark 应用程序。如果我在类路径中只提供一个 jar,它可以很好地使用 --jar--driver-class-path 选项的给定选项。根据 EMR 的要求,我所需的所有依赖项 jar 都位于 S3 存储桶中。为此,我在 EMR AWS 控制台上的 EMR 添加步骤选项中使用以下命令:

--class org.springframework.boot.loader.JarLauncher --jars s3://emrb/gson-2.8.4.jar --driver-class-path s3://emrb/gson-2.8.4.jar

现在,我在 add stepspark-submit options 区域提供了这个选项。但是如果我想用同样的方式提供多个依赖的jar,它不会占用其他的jar。我提供了以下方式并尝试了各种选项,但找不到相关的 jar:

 --jars s3://emrb/hadoop_jars/emrfs-hadoop-assembly-2.32.0.jar,s3://emrb/gson-2.8.4.jar --driver-class-path s3://emrb/hadoop_jars/emrfs-hadoop-assembly-2.32.0.jar,s3://emrb/gson-2.8.4.jar --class org.springframework.boot.loader.JarLauncher

最佳答案

您可以在单独的 json 文件中指定步骤参数:

aws emr add-steps --cluster-id "j-xxx" --steps file://./steps.json

steps.json 包含如下内容:

[
  {
    "Type":"Spark",
    "Args": [
      "--jars",
      "s3://emrb/hadoop_jars/emrfs-hadoop-assembly-2.32.0.jar,s3://emrb/gson-2.8.4.jar",
      "--driver-class-path",
      "s3://emrb/hadoop_jars/emrfs-hadoop-assembly-2.32.0.jar,s3://emrb/gson-2.8.4.jar",
      "--class",
      "org.springframework.boot.loader.JarLauncher"
    ]
  }
]

关于scala - AWS EMR 添加步骤 : How to add multiple jars from s3 in --jars and --driver-class-path options?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55753938/

相关文章:

apache-spark - EMR 无服务器上的 Spark-cassandra-connector (PySpark)

apache-spark - Spark读取不同版本的Parquet文件

java - 一个简单的 Spark 应用程序,存在 MojoExecutionException 问题

json - 我需要关于 Play 的 Json 和 Writes trait 中优雅的 Option 处理的建议

amazon-web-services - 带有数组列表的 AWS EventBridge 输入转换规则

amazon-web-services - 在AWS Beanstalk上部署docker仅提供html文件,不提供其他文件

php - 使用 PHP 检查 SSL

scala - 我可以将主构造函数设为私有(private),同时在 Scala 中保持辅助构造函数为公开吗?

scala - 为什么 sbt 说 "bad symbolic reference..."进行 ScalaTest 测试?

scala - 我可以将对象的实例方法传递给期望在 Scala 中进行回调的方法吗?