在现有EMR上运行Scala Spark作业

时间:2017-11-16 09:43:06

标签: scala apache-spark emr amazon-emr

我在我的机器上运行了Spark Job aggregationfinal_2.11-0.1 jar。它的组成如下:

if

当我在本地模式下运行此代码时,它运行正常但是当我在EMR集群上部署它时将jar放在主节点中。它给出错误:

package deploy
    object FinalJob {
      def main(args: Array[String]): Unit = {
        val spark = SparkSession
          .builder()
          .appName(s"${this.getClass.getSimpleName}")
          .config("spark.sql.shuffle.partitions", "4")
          .getOrCreate()

    //continued code
    }
    }

我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

最好的选择是将你的uber jar(你可以使用sbt assembly plugin来构建jar)部署到s3并为EMR集群添加spark步骤。请检查:http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-submit-step.html

答案 1 :(得分:0)

尝试将其解开到某个文件夹并使用以下命令jar -xvf myapp.jar查找目标/类。如果目标类不包含您正在执行的类,则构建jar的方式存在问题。我会建议maven组装在你的pom包装。