Intro
通過翻看 Azkaban Executor Server 源碼,發現 Executor 提供了 rest 接口,來手動激活 Executor.
爲什麼不在 Executor 啓動時自動激活呢….官方 issue110 解釋如下:
We don't update prior to web-server start.
Let me introduce how we do a regular Executor deployment. Both old webserver and old executor(3.a) are up initially, and old executor is running jobs (we can not interrupt it). Executor Deployment starts:
install new Executor (3.b) on our box without activating.
Run job tests, which targets 3.b and make sure 3.b is working.
Activate 3.b, and deactivate 3.a. Even though 3.a is deactivated, jobs still keep runnig there.
Deployment completes.
We would better run tests against new executor before activating it. Is it a bit clear now?
Solution
curl http://${executorHost}:${executorPort}/executor?action=activate
參考:
https://github.com/azkaban/azkaban/issues/1100
https://github.com/azkaban/azkaban/issues/1581