大数据sparkexecutor解析

大数据sparkexecutor解析,第1张

spark executor

Executor是spark任务(task)的执行单元,运行在worker上,但是不等同于worker,实际上它是一组计算资源(cpu me核心、memory)的集合。


一个worker上的memory、cpu由多个executor共同分摊。


大数据sparkexecutor解析,第2张

spark.executor.cores:顾名思义这个参数是用来指定executor的cpu内核个数,分配更多的内核意味着executor并发能力越强,能够同时执行更多的task

大数据sparkexecutor解析,第3张

spark.cores.max:为一个application分配的最大cpu核心数,如果没有设置这个值默认为spark.deploy.defaultCores

大数据sparkexecutor解析,第4张

spark.executor.memory:配置executor内存大小

大数据sparkexecutor解析,第5张

在使用过程中总结如下规律:

executor个数 = spark.max.cores / spark.executor.cores,集群的executor个数由spark.max.cores、spark.executor.cores共同决定,注意在standalone、mesos coarse-grained模式 下cores不要大于对应节点的内核数要保证每个worker上启动的executor均衡。


如果不均衡的话会造成数据倾斜,拉慢任务的整体速 度。


在运行过程中一个stask对应一个partition,配置不均衡,会导致每个节点处理的任务量不一样,因此会产生短板效应。


如果运行过程中发现GC时间变红(管理界面可以看到),应该适当调大spark.executor.memory。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/538542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019-08-15
下一篇 2019-08-15

发表评论

登录后才能评论

评论列表(0条)

保存