手记

大数据spark的学习之提交任务与参数解释

来源:科多大数据

配置与YARN进行关联

第一个,基于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-executors1 \

 /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 可以动态调整一般为计算节点的整数倍



作者:卿卿老祖
链接:https://www.jianshu.com/p/db81130035e2


0人推荐
随时随地看视频
慕课网APP