美文网首页
Azkaban-搭建及任务编写

Azkaban-搭建及任务编写

作者: 世界而世界 | 来源:发表于2020-06-27 23:29 被阅读0次

Azkaban-搭建及任务编写

常用网址

  1. 官网
  2. 文档

软件安装

下载及构建

  1. 下载地址
  2. 构建
# Build and install distributions
./gradlew installDist

独立运行

  1. 下载项目源码
# 可直接克隆项目
git clone https://github.com/azkaban/azkaban.git

# 或者下载最新的稳定版源码
wget https://github.com/azkaban/azkaban/archive/3.81.0.tar.gz
  1. 下载源码后需要构建及打包出可用的软件
cd azkaban
./gradlew build installDist
  1. 启动独立服务
cd azkaban-solo-server/build/install/azkaban-solo-server
bin/start-solo.sh

# 默认 UI 地址
http://localhost:8081/
# 默认账户 azkaban azkaban
# 账户配置 conf/azkaban-users.xml
  1. 停止服务
bin/shutdown-solo.sh

集群运行

  1. 安装 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
  1. 启动 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
  1. 启动 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编写

  1. java 类型
type=javaprocess

classpath=./lib/*,${azkaban.home}/lib/*

java.class=com.xxx.xxx.XxxJob
  1. spark 类型
type=javaprocess

classpath=./lib/*,${azkaban.home}/lib/*

java.class=com.xxx.xxx.XxxJob

Flow编写

  1. 配置使用2.0
vim flow20.project

-----
azkaban-flow-version: 2.0
-----
  1. 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
-----

相关文章

网友评论

      本文标题:Azkaban-搭建及任务编写

      本文链接:https://www.haomeiwen.com/subject/izubfktx.html