azkaban
1. install
1. 1. solo server(单机)
# clone the repo
git clone https://github.com/azkaban/azkaban.git
# BUild azkaban and create an installation package
cd azkaban
./gradlew build installDist
# start the sole server
cd azkaban-solo-server/build/install/azkaban-solo-server
bin/start-solo.sh
# stop server
bin/shutdown-solo.sh
http://localhost:8081/
登录名和密码都是 default的azkaban,可以在server的resources/conf/azkaban-user.xml中修改
1.2 multi-server(集群)
原理:WeBServer根据Executor server 的运行状态信息,选择一个适合的Executor来运行WorkFlow,然后会将提交到队列中的WorkFlow调度到选定的Executor Server 上运行。
通信:webServer与Executor之间的交互方式是通过RESET API的方式进行的,WebServer根据调度需要,主动调用ExecutorServer暴露的RESET API来获取相应的资源信息,如:Executor Server 的状态信息,分配WorkFlow到指定ExecutorServer上运行。
WebServer: 整个调度集群的核心,负责所有作业的管理和调度。界面展示。
ExecutorServer: 整个调度集群中实际运行作业的节点。
DB(MySQL):集群中所有节点运行公用的数据存储,包含作业信息、各种调度元数据等等。
集群运行azkaban,只需要一个webServer,多个executorServer
- webServer 端
### install mysql
docker search mysql
docker pull mysql
cd /opt
mkdir mysql_docker
cd mysql_docker
echo $PWD
# run mysql
docker run --name mysql_docker_server -v $PWD/conf:/etc/mysql/conf.d -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:latest
docker exec -it mysql_docker_server
mysql -uroot -p
# input passwd
use mysql
select host,user from user;
alter user 'root'@'%' identified with mysql_native_password by '123456';
flush privileges;
http://localhost:8081/
mysql -h10.5.25.53 -p3306 -uroot -p"123456"
create database azkaban;
create user 'username'@'%' identified by 'password';
grant select,insert,update,delete on azkaban
cd azkaban/azkaban-web-server/build/install/azkaban-web-server
vi azkaban.properties
# 修改 mysql.user = <username>
# mysql.password = <password>
如果没有成功的话,首先重启mysql,然后修改webServer/conf
path: 在git azkaban后的 azkaban-web-server/conf
- executorServer 端
cd azkaban-exec-server/conf
vim azkaban.properties
# 修改 mysql.user = <username>
# mysql.password = <password>
# 最简单的方式 就是 将web-server/conf 拷贝过来
cd azkaban-exec-server/build/install/azkaban-exec-server
bash ./bin/start-exec.sh
# cd azkaban-exec-server
# bash bin/start-exec.sh
#########################################
####executor只有被激活才能被webServer感知####
#########################################
cd azkaban-exec-server/build/install/azkaban-exec-server
curl -G "localhost:$(<./exector.port)/executor?action=active" && echo
2. 迁移executorServer
scp -r username@53:~/azkaban-exec-server ./
# 也可以使用docker 方式打包
# docker build -f XXXX
# 写dockerfile
FROM OS
RUN XXXX
也可以使用docker 方式打包
# docker build -f XXXX
# 写dockerfile
FROM OS
RUN XXXX