Azkaban Executor 设置任务并行度
1.问题描述
最近使用Azkaban进行Hive的任务调度,工作流结构如下
其中每一层都是一个工作流,每一层并行任务最少有5个,最多有二十多个,下一层执行依赖于上一层,但是在实际执行过程中,同一层最多只有10个任务并行执行。
2.问题分析
查看Yarn的Schedular,发现资源并不紧缺,联想到这是Azkaban的配置问题。
查看AzkabanExecutorConfiguration参数配置,发现需要重新设置flow.num.job.threads
,该参数表示同一个工作流中任务执行的最大并行度,默认值为10。
3.问题解决
进入azkaban-exec-server
的conf
目录下vim azkaban.properties
编辑AzkabanExecutor的配置文件,在末尾添加,所有的AzkabanExecutor节点均需要做如下配置
# 设置工作流最大并行度为30,按照实际情况设置
# 工作流最大并行度过大会导致AzkabanExecutor分配任务速度降低
flow.num.job.threads=30
然后回到AzkabanExecutor的家目录重启AzkabanExecutor
bin/shutdown-exec.sh # 关闭AzkabanExecutor服务
bin/start-exec.sh # 开启AzkabanExecutor服务
curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo # 激活AzkabanExecutor服务