EMR command-runner 如何提交作业
How EMR command-runner submit jobs
我如何弄清楚在将 EMR Step 部署到主节点等于 local[x]
的集群后到底发生了什么?
如何command-runner.jar
提交作业给EMR的master?如果我将“--executor-cores 4”作为 spark-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();
如果你将 master 设置为“local”,它根本不会创建任何 executor。整个应用程序(驱动程序和任务)将 运行 在主实例上的单个 JVM 进程中。使用“local[8]”使得这个单个进程可以 运行 8 个并行任务(在不同的线程中)。
“local”的masterurl主要用于(local)development/testing,不用于集群上的运行ning。您很可能根本不应该设置 master url,这样它将使用“yarn”,这是 EMR 的默认值。
我如何弄清楚在将 EMR Step 部署到主节点等于 local[x]
的集群后到底发生了什么?
如何command-runner.jar
提交作业给EMR的master?如果我将“--executor-cores 4”作为 spark-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();
如果你将 master 设置为“local”,它根本不会创建任何 executor。整个应用程序(驱动程序和任务)将 运行 在主实例上的单个 JVM 进程中。使用“local[8]”使得这个单个进程可以 运行 8 个并行任务(在不同的线程中)。
“local”的masterurl主要用于(local)development/testing,不用于集群上的运行ning。您很可能根本不应该设置 master url,这样它将使用“yarn”,这是 EMR 的默认值。