sparkstreaming动态资源分配

在数据高峰期会出现大量job处于queened状态,可以通过调高num-executors参数,以及调高程序的并法度,来解决这个问题,但大多数情况下,根本用不了这么多资源,所以启用资源的动态管理解决这个问题

方法:

配置参数

1. 不开启动态调度. --num-executors=XXX

2. 开启动态调度:

--conf spark.dynamicAllocation.initialExecutors=10 (刚开始分配的Executor个数, 可默认, 默认0)

--conf spark.dynamicAllocation.minExecutors=2 (最小的Executor个数, 可默认, 默认0)

--conf spark.dynamicAllocation.maxExecutors=10 (最多的Executor个数)

--conf spark.dynamicAllocation.enabled=true

如果出现任务等待,会动态添加executor个数,加快数据处理速度,当数据量减少,默认在1min没有新的task执行的时候,就会让出之前的executor

你可能感兴趣的:(sparkstreaming动态资源分配)