Azkaban-搭建及任务编写
常用网址
- 官网
- 文档
软件安装
下载及构建
- 下载地址
- 构建
# Build and install distributions
./gradlew installDist
独立运行
- 下载项目源码
# 可直接克隆项目
git clone https://github.com/azkaban/azkaban.git
# 或者下载最新的稳定版源码
wget https://github.com/azkaban/azkaban/archive/3.81.0.tar.gz
- 下载源码后需要构建及打包出可用的软件
cd azkaban
./gradlew build installDist
- 启动独立服务
cd azkaban-solo-server/build/install/azkaban-solo-server
bin/start-solo.sh
# 默认 UI 地址
http://localhost:8081/
# 默认账户 azkaban azkaban
# 账户配置 conf/azkaban-users.xml
- 停止服务
bin/shutdown-solo.sh
集群运行
- 安装 mysql
-- 创建数据 azkaban
CREATE DATABASE azkaban;
USE azkaban;
-- 创建用户 azkaban
CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';
-- 分配权限
GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;
-- GRANT ALL ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;
show grants for azkaban;
- 数据库表初始化脚本
- 或者从此处获得 cd azkaban-db; ../gradlew build installDist
- 修改 mysql 配置,以便可用上传大文件
# 修改mysql配置
vim /etc/my.cnf.d
-------
[mysqld]
max_allowed_packet=1024M
-------
# 重启
sbin/service mysqld restart
- 启动 executor
# 进入 executor 软件目录
cd azkaban/azkaban-exec-server/build/install/azkaban-exec-server
# 修改 azkaban 配置
vim conf/azkaban.properties
-------
# 时区
# Mysql Configs
mysql.user=<username>
mysql.password=<password>
-------
# 启动服务
cd azkaban-exec-server/build/install/azkaban-exec-server
./bin/start-exec.sh
# 激活 executor 此步骤必须
cd azkaban-exec-server/build/install/azkaban-exec-server
curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo
- 启动 web ui
# 进入 executor 软件目录
cd azkaban/azkaban-web-server/build/install/azkaban-web-server
# 修改 azkaban 配置
vim conf/azkaban.properties
-------
# 时区
# Mysql Configs
mysql.user=<username>
mysql.password=<password>
-------
# 启动,默认是 http://localhost:8081/
cd azkaban-web-server/build/install/azkaban-web-server
./bin/start-web.sh
Job编写
- java 类型
type=javaprocess
classpath=./lib/*,${azkaban.home}/lib/*
java.class=com.xxx.xxx.XxxJob
- spark 类型
type=javaprocess
classpath=./lib/*,${azkaban.home}/lib/*
java.class=com.xxx.xxx.XxxJob
Flow编写
- 配置使用2.0
vim flow20.project
-----
azkaban-flow-version: 2.0
-----
- spark 流编写
- .flow 的编写基于 yaml 文件,可参考相同语法
vim basic.flow
# 简单配置
-----
nodes:
- name: kg-xxx
type: command
config:
command: spark2-submit
--master yarn
--deploy-mode client
--class com.xxx.ExtractionGraphJob lib/kg-xxx-1.0.jar tmp
-----
# 增加配置文件
-----
---
config:
spark.common.conf: --master yarn
--deploy-mode client
--conf spark.driver.maxResultSize=4g
--conf spark.dynamicAllocation.enabled=false
--conf spark.network.timeout=200000
--conf spark.executor.heartbeatInterval=100000
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer
nodes:
- name: kg-xxx
type: command
config:
command: spark2-submit
${spark.common.conf}
--class com.xxx..ExtractionGraphJob lib/kg-xxx-1.0.jar tmp
-----
# 内嵌流
-----
nodes:
- name: embedded_flow
type: flow
config:
prop: value
nodes:
- name: jobB
type: noop
dependsOn:
- jobA
- name: jobA
type: command
config:
command: pwd
-----
网友评论