EMR命令运行器如何提交作业

问题描述 投票:1回答:1

你能否帮我弄清楚你部署EMR之后到底发生了什么?主要等于local[x]的群集?

command-runner.jar如何向EMR的主人提交工作?如果我将“--executor-cores 4”作为sp​​ark-submit参数传递,但是在Launcher中我创建了与local[8]会话,我会为执行程序获得多少核心?它会创造多少执行者?

我没能在AWS文档中找到这个。例:

SomeStep: 
  Type: AWS::EMR::Step
  Properties: 
    ActionOnFailure: CONTINUE
    HadoopJarStep: 
      Args: 
        - "spark-submit"
        - "--deploy-mode"
        - "cluster"
        - "--executor-cores"
        - "4"
        - "--class"
        - "com.psyquation.batch.analytic.Driver"

        {
          "Fn::Sub": "s3://some-bucker/my-app.jar"
        },
      Jar: command-runner.jar
      MainClass: com.somepackage.Launcher
    Name: SomeStep
    JobFlowId: !Ref SomeCluster

现在在com.somepackage.Launcher中:

SparkSession.Builder builder = SparkSession.builder()
    // some configs ...
    .master("local[8]")
    .getOrCreate();
amazon-web-services apache-spark yarn amazon-emr
1个回答
2
投票

如果将主服务器设置为“本地”,则根本不会创建任何执行程序。整个应用程序(驱动程序和任务)将在主实例上的单个JVM进程中运行。使用“local [8]”只是使得这个单个进程可以并行运行8个任务(在不同的线程中)。

“本地”的主URL主要用于(本地)开发/测试,而不是用于在群集上运行。您很可能根本不应该设置主URL,因此它将使用“yarn”,这是EMR的默认值。

© www.soinside.com 2019 - 2024. All rights reserved.