scala AWS EMR添加步骤:如何从s3的--jars和--driver-class-path选项中添加多个jar?

hmae6n7t  于 2023-01-09  发布在  Scala
关注(0)|答案(2)|浏览(198)

因此,我尝试使用spark-submitcluster模式下在AWS EMR上运行Apache Spark应用程序。使用--jar--driver-class-path选项,它可以很好地工作。我所需的所有依赖关系jar都位于EMR所需的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
ukqbszuj

ukqbszuj1#

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

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"
    ]
  }
]
zour9fqk

zour9fqk2#

您可以在spark-defaults中添加jar文件。如果jar列表中有多个条目,请用途:作为分离器。
您应该用途:
--驱动程序类路径s3://emrb/hadoop_jar/emrfs-hadoop-程序集-2.32.0.jar:s3://emrb/gson-2.8.4.jar

相关问题