【问题标题】:How to spark-submit remotely to EMR as Client mode?如何以客户端模式远程提交到 EMR?
【发布时间】:2021-10-20 18:37:33
【问题描述】:

我有一个配置为运行 spark-submit 到 EMR 集群的 ECS 任务。 spark-submit 配置为 Yarn Cluster 模式。

我的流应用程序应该将数据保存到 RDD 上的 Redshift,但我收到此错误:

java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.amazon.ws.emr.hadoop.fs.EmrFileSystem not found
    at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2195)
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2654)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2667)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373)
    at com.databricks.spark.redshift.Utils$.assertThatFileSystemIsNotS3BlockFileSystem(Utils.scala:162)
    at com.databricks.spark.redshift.RedshiftWriter.saveToRedshift(RedshiftWriter.scala:386)
    at com.databricks.spark.redshift.DefaultSource.createRelation(DefaultSource.scala:108)
    at org.apache.spark.sql.execution.datasources.SaveIntoDataSourceCommand.run(SaveIntoDataSourceCommand.scala:45)
    ...

我怀疑是因为“spark.yarn.jars”没有设置,所以它将我的远程服务器的 $SPARK_HOME 库推送过来,它缺少 com.amazon.ws.emr.hadoop.fs.EmrFileSystem 的 jars。

所以,在我复制了 EMR 的主节点的 /usr/lib/spark/jars/* 之后,我还尝试设置 "spark.yarn.jars=hdfs://nodename:8020/user/spark/jars/*.jar"。然后报错:

java.io.InvalidClassException: org.apache.spark.sql.execution.SparkPlan; local class incompatible: stream classdesc serialVersionUID = -7931627949087445875, local class serialVersionUID = -5425351703039338847

我认为远程客户端的 jar 与 EMR 集群的 jar 之间的 jar 可能不匹配。但它们都是 2.4.7 版本。

谁有任何聪明的解决方案来让我的流式 spark-submit 工作在 EMR 中作为 yarn 客户端模式工作?

【问题讨论】:

    标签: apache-spark hadoop amazon-emr


    【解决方案1】:

    二进制文件需要与 EMR 集群中的相同。

    这个资源帮助我解决了这个问题: https://docs.dominodatalab.com/en/4.5.2/reference/spark/external_spark/Connecting_to_an_Amazon_EMR_cluster_from_Domino.html

    【讨论】:

      猜你喜欢
      • 2016-10-05
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 2018-08-22
      相关资源
      最近更新 更多