Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请教几个问题 #15

Open
zvrr opened this issue Aug 23, 2018 · 2 comments
Open

请教几个问题 #15

zvrr opened this issue Aug 23, 2018 · 2 comments

Comments

@zvrr
Copy link

zvrr commented Aug 23, 2018

目前我们在自己做一个数据平台的调度系统,对于一天任务量在几千个的系统来说,azkaban配置太麻烦了,感谢你开源了azkaban_assistant(https://github.com/cocofree/azkaban_assistant),有几个疑问像你请教下,谢谢。

1、azkaban都是用project来管理项目的,那我们az助手是如何通过任务交给az来调度的?
2、az助手的任务和project是什么关系?
3、远程执行脚本是如何和实现az的集群模式,在多个exec执行器间调度?

@zjplus
Copy link

zjplus commented Aug 24, 2018

  • 1、azkaban_assistant是一个自定义的任务工具,主要工作是对project进行任务依赖配置。通过azkaban的接口上传project到azkaban,这和你自己打包成zip,手动在页面上upload并没有太大的区别。只是将这些步骤程序化了,把job的信息保存在了db里,而不需要自己手动些*.job文件
  • 2、azkaban_assistant是对azkaban做了定制化的改造。实现了任务管理,也实现了分布式。相互都有改动的地方,可以把改造后的 azkaban+ azkaban_assistant 和原始的azkaban进行对比。要说关系,不仅仅是一个助手,因为把azkaban改了之后必须使用azkaban_assistant里的exe_job.py才能执行任务
  • 3、exe_job.py是这个项目的核心,通过ssh登录到不同的机器去执行linux命令。还是原来的azkaban进行任务调度,但是每一个任务执行的都是 exe_job.py文件,通过参数和配置去做一些定制化的操作。包括跨项目任务依赖,告警配置等。

@cocofree
Copy link
Owner

@zvrr 感谢关注,先回答下你的几个问题
1、azkaban_assistant对project里的task进行了封装,实际运行的是远程服务器执行命令。调度还是由az来进行控制。
2、同上
3、并没有实现集群模式,依赖的是az 2.5版本。本项目里所谓的分布式,是指一台机器管理的所有机器的远程服务任务。

到这里,其实想说的azkaban_assistant这个项目还是不成熟的,任务平台化配置管理这部分方向没有问题,但是使用远程命令来控制任务,对于小公司来说是够用的,但是如果任务数多了,会有以下隐患:
1、管理远程脚本的服务器压力过大
2、实际执行机的并发无法管理
3、远程�任务的�状态管理有限
以上问题在调度平台做深入了之后,都会是瓶颈。
建议worker机器的任务也是由系统直接管理(各种状态的任务队列),包括封装各类工具化插件、worker机并管理等,实现真正意义上的分布式调度系统

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants