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/

相关文章:

scala - Scala 中的类型 - 下界

scala - 如何在 Spark 中获取 map task 的 ID?

amazon-web-services - AWS SAM 本地 Lambda 调用缓慢

php - 如何更改服务器时区而不影响已插入的数据?

hadoop - 从hbase读取数据,工作人员是否需要从远程驱动程序获取分区数据?

scala - 如何让 gradle/intellij/play 框架协同工作?

scala - 仿函数有什么用处?

mongodb - Ubuntu 无法使用 node 运行 mongod 数据库

apache-spark - 是否可以在一个 Spark 应用程序的单个 Spark 工作器中启动多个 Executor?

python - 为什么这个简单的 Spark 程序没有使用多核?