Spark on Yarn:任务提交参数配置
- 当在YARN上运行Spark作业,每个Spark executor作为一个YARN容器运行。Spark可以使得多个Tasks在同一个容器里面运行。
以下参数配置为例子:
spark-submit
--master yarn-cluster #使用集群调度模式(一般使用这个参数)
--num-executors 132 # executor 数量
--executor-cores 2 #设置单个executor能并发执行task数,根据job设置,推荐值2-16 (这里不是指CPU数,集群不限制CPU使用)
--driver-memory 4g #driver的内存大小,推荐值2-6G,不宜太大
--executor-memory 6g #单个executor的内存大小,根据job需求以及并发数设置,最大不要超过30G
。。。
- 公式:
1、containers的最大值就是spark 设置的 num-executors值 ;
2、实际占用的总的vcores≈(executor-cores)*containers(实际executors)
3、内存计算公式:((实际占用的总的containers)*(executor-memory+512M))+(driver-memory)。
- 以下是我实际执行的情况:
submit.sh
#!/bin/sh spark-submit --master yarn-cluster --class MyMain --num-executors 132 --executor-cores 2 --driver-memory 4g --executor-memory 6g xxx.jar
yarn resoruce manager监控的资源占用结果:
基本上按照上边公式。
参考资料:
Spark On YARN内存分配 https://yq.aliyun.com/articles/25468
spark on yarn - job提交重要参数说明:http://www.tuicool.com/articles/7vuu22b
spark-submit提交参数设置:http://www.cnblogs.com/gnool/p/5643595.html
基础才是编程人员应该深入研究的问题,比如:
1)List/Set/Map内部组成原理|区别
2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。
3)JVM运行组成与原理及调优
4)Java类加载器运行原理
5)Java中GC过程原理|使用的回收算法原理
6)Redis中hash一致性实现及与hash其他区别
7)Java多线程、线程池开发、管理Lock与Synchroined区别
8)Spring IOC/AOP 原理;加载过程的。。。
【+加关注】。