Spark 提交任务于参数解释

Spark 提交任务于参数解释

@来自科多大数据

配置与YARN进行关联

Spark 提交任务于参数解释_第1张图片

第一个,基于standalone 集群模式提交

这里使用的client模式,还可以使用另外一种模式 cluster

./bin/spark-submit \

--class spark_streaming.SparkStreaming_first \

--master spark://master:7077 \

--deploy-mode client \

--supervise \

--executor-memory 1G \

--total-executor-cores 1 \

/home/hadoop/spark.jar

第二个,基于YARN 集群模式提交

这里使用的client模式,还可以使用另外一种模式 cluster

./bin/spark-submit \

--class spark_streaming.SparkStreaming_first \

--master yarn \

--deploy-mode client \

--executor-memory 1G \

--num-executors 1 \

/home/hadoop/spark.jar

spark-submit 是最常用来提交任意 Spark 任务的客户端工具,客户实现自己的业务打包 成 jar 包并通过该工具提交任务在集群中运行。 spark-submit 需要指定为 master 参数为 yarn-client 或 yarn-cluster 模式,若不指定该参数 为单机版模式。根据实际业务需求和集群资源情况指定单个执行器所占 CPU、单个执行 器所占内存和执行器个数。 直接输入 spark-submit 可以看到其所有参数:

常用启动参数:

--master yarn-client (启动并以集群模式提交任务,不设置为 local 模式非 集群) --driver-memory 10G (Driver 内存,每个任务都会启动一个 driver)

--executor-memory 85G (每个 executor 的内存)

--executor-cores 26 (每个 executor 的 Vcore)

--num-executors 16 (集群内启动多少 executor)

启动参数配置原则:

ü driver-memory 这个不需要太大一般 4-10g 足够

ü executor-memory 尽可能利用集群空闲资源(可以理解为 yarn 上物理内存 减去其他组件需要使用以外的剩余内存尽量分配进来。)

ü executor-cores 依据每个 task 所需的内存来调整 core 数量 不同任务所需要内存不同,假设 executor-memory 为 80G,每个 task 内存需要 4G 则 executor-cores 可以设置为 20; 注意:Spark 任务中 每一个 container 处理一个 task,每一个 container 含有 至少一个 core 以及一部分内存,因此由上例可以得出每一个 container 含有 1 个 core 和 85/26 G 的内存; container 总数在 26*16 个也就是说在这个启动参 数中 spark 的任务能同时并发 26*16 个 task。

ü num-executors 可以动态调整 一般为计算节点的整数倍。

你可能感兴趣的:(Spark 提交任务于参数解释)