INFO-azkaban线程调整

适用模块
easyops、azkaban
具体说明
任务过高导致az线程满,新任务一直就绪
使用示例
azkaban executor进程配置的内存以及并发值修改方案
1.登录easyops管控页面,进入服务界面,把所有的exec节点内存调大,.修改配置以后点击更新当前配置组按钮 如下截图:
INFO-azkaban线程调整 - 图1
2、分别重启exec节点,如下截图:
INFO-azkaban线程调整 - 图2
3、登录azkaban数据库修改表executors 表中的字段 threads_num 都改成200
登录easyops页面找到azkaban数据库登录信息(用户名,密码,实例名,数据库vip地址),如下截图:
INFO-azkaban线程调整 - 图3
INFO-azkaban线程调整 - 图4
4、登录azkaban数据库,执行如下命令,以下命令相关参数根据以上截图就行修改:
mysql -hxxx -uxxx -pxxx -Dazkaban
任务并发量调大会占用更多内存,如果 azkaban executor太低,比如3G,需要先增加内存,再调大任务并发值。
修改数据库中任务并发数
查看当前并发数
INFO-azkaban线程调整 - 图5
修改并发值
使用update executors set threads_num = {} where id = {}; 修改并发值。
例如
update executors set threads_num = 100 where id = 1;
刷新Executor中任务并发数
每台Executor都要执行
curl "http://127.0.0.1:12321/executor?action=reloadThreadsNum"
INFO-azkaban线程调整 - 图6
确认并发数设置成功
查看web日志azkaban-refresh日志,找到如下信息。每台executor都会打印一条日志,定期刷新的。
INFO-azkaban线程调整 - 图7
说明:
1. "remainingFlowCapacity"表示当前执行机剩余可分配的任务数,"numberOfAssignedFlows"当前执行机正在执行的任务数。这俩值加起来,应该等于刚才修改的数据库中threads_num的值。
2. 如果"remainingFlowCapacity"显示为-3,表示当前执行机负载或者内存比较高,不能支持executor线程扩容。需要排查下系统问题。
如果"remainingFlowCapacity"显示为-2,表示当前执行机可分配线程数到达了threads_num扩容上限,需要再次增大threads_num。
如果"remainingFlowCapacity"显示为-1,表示正在扩容,不需要处理。
650如下执行
1.修改threads_num,在azkaban数据库中
update executors set threads_num = 200 ;
2.每台Executor都要执行
curl "http://127.0.0.1:12321/executor?action=reloadThreadsNum"
3.在azkaban web服务器上
(1)获取session.id
curl -k -X POST "https://127.0.0.1:8443?action=login&username=hadoop&password=azkabanAdmin"
(2)刷新executors
curl -k "https://127.0.0.1:8443/executor?ajax=reloadExecutors&session.id=xxxxx"
4.查看azkaban web服务器上,azkaban-refresh日志
查看threads值和 remainingFlowcapacity的值
INFO-azkaban线程调整 - 图8

作者:林帅