azkaban安装使用

  • 一、安装
    • 1. 准备工作
      • 1.1 下载
      • 1.2 环境要求
    • 2. 配置
      • 2.1 软件配置
        • 2.1.1 数据库准备
        • 2.1.2 exec-server配置
          • 2.1.2.1 exec的azkaban配置
          • 2.1.2.2 execute-as-user.c编译
          • 2.1.2.3 jobtype配置
        • 2.1.3 web-server配置
          • 2.1.3.1 web的azkaban配置
    • 3. 启动
      • 3.1 修改启动脚本
        • 3.1.1 修改exec-server的启动脚本:
        • 3.1.2 修改web-server的启动脚本
      • 3.2 命令启动关闭

一、安装

1. 准备工作

1.1 下载

下载软件源码:
https://github.com/azkaban/azkaban
或是
https://github.com/azkaban/azkaban/releases

下载插件源码
https://github.com/azkaban/azkaban-plugins

下载的.zip包,则安装环境中需要在root用户下安装unzip,用于解压,命令如下:yum -y install unzip

本文选择的软件包是azkaban-3.90.0.tar.gz,插件包是azkaban-plugins-3.0.0.zip(在本文安装过程中,发现插件包有问题,其实别用插件包为好,直接用源码包中的部分内容即可,插件包无需下载了)

root安装git:yum install -y git gcc-c++,不安装会导致之后源码包编译失败:

Failed to apply plugin [id 'com.cinnober.gradle.semver-git']

1.2 环境要求

有安装hadoop、hive、mysql等,本文的hadoop、hive等集成了kerberos(即为安全集群)

2. 配置

2.1 软件配置

解压tar -zxvf azkaban-3.83.0.tar.gz

### 进入到其解压的根目录(本文为`/usr/local/software/azkaban-3.90.0/`)
###
[rd@hadoop-server-002 /]$ cd /usr/local/software/azkaban-3.90.0/
### 执行命令如下命令进行编译:`./gradlew build installDist -x test`
###
[rd@hadoop-server-002 azkaban-3.90.0]$ ./gradlew build installDist -x test

每个组件的包在自己的目录里,这些目录里有build/distributions,构建结果就在这里,有tar包和zip包两种。

###  分别进/usr/local/software/azkaban-3.90.0/下的
###  azkaban-exec-server/build/distributions/、
###  azkaban-web-server/build/distributions/、
###  azkaban-db/build/distributions/中,
###  将其下的tar包拷贝到同一个目录(本文为/usr/local/apps/azkaban/)
###
cp /usr/local/software/azkaban-3.90.0/azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz /usr/local/apps/azkaban/
cp /usr/local/software/azkaban-3.90.0/azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz /usr/local/apps/azkaban/
cp /usr/local/software/azkaban-3.90.0/azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz /usr/local/apps/azkaban/###  之后分别解压拷贝过来的
###  azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz、
###  azkaban-db-0.1.0-SNAPSHOT.tar.gz、
###  azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
###
cd /usr/local/apps/azkaban/
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz### 并分别重命名###
mv azkaban-web-server-0.1.0-SNAPSHOT azkaban-web-server
mv azkaban-exec-server-0.1.0-SNAPSHOT azkaban-exec-server
mv azkaban-db-0.1.0-SNAPSHOT azkaban-db

另外注意:编译完的源码包别删,下面还有用

2.1.1 数据库准备

进入/usr/local/apps/azkaban/azkaban-db可以发现其中有一个create-all-sql-0.1.0-SNAPSHOT.sql的sql语句,如下:

进入mysql执行该语句:

#创建数据库azkaban(该数据库名随意,但之后修改azkaban的配置时需一致)
mysql> CREATE DATABASE azkaban;
mysql> use azkaban;
mysql> source /usr/local/apps/azkaban/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql

之后查看mysql:

2.1.2 exec-server配置

2.1.2.1 exec的azkaban配置

进入/usr/local/apps/azkaban/azkaban-exec-server/conf,修改azkaban.properties

### 修改时区,
### 并注释如下部分,
### 该部分设置是web-server的个性化配置,exec-server用不到
###
# Azkaban Personalization Settings
#azkaban.name=Test
#azkaban.label=My Local Azkaban
#azkaban.color=#FF3601
#azkaban.default.servlet.path=/index
#web.resource.dir=web/
default.timezone.id=Asia/Shanghai### 注释如下部分,该部分设置是web-server的用户管理类配置,exec-server用不到
###
# Azkaban UserManager class
#user.manager.class=azkaban.user.XmlUserManager
#user.manager.xml.file=conf/azkaban-users.xml### 全局配置文件路径、以及项目文件路径地址,不做修改,默认
###
# Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects### 不做修改,默认
###
# Velocity dev mode
velocity.dev.mode=false### 注释如下部分,
### 该部分设置是web-server的Jetty服务器属性配置,exec-server用不到
###
# Azkaban Jetty server properties.
#jetty.use.ssl=false
#jetty.maxThreads=25
#jetty.port=8081### 修改如下为自身地址,端口默认即可
### (该端口应与web-server中配置的jetty.port一致)
###
# Where the Azkaban web server is located
azkaban.webserver.url=http://hadoop-server-002:8081# mail settings
mail.sender=
mail.host=# User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.
# enduser -> myazkabanhost:443 -> proxy -> localhost:8081
# when this parameters set then these parameters are used to generate email links.
# if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.
# azkaban.webserver.external_hostname=myazkabanhost.com
# azkaban.webserver.external_ssl_port=443
# azkaban.webserver.external_port=8081
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache### 默认即可
###
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true### jobtype插件地址
###
# Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes### mysql配置,修改如下为自身配置,database要与之前在mysql中建立的数据库名一致
###
# Azkaban mysql settings by default. Users should configure their own username and password.
database.type=mysql
mysql.port=3306
mysql.host=hadoop-server-002
mysql.database=azkaban
mysql.user=root
mysql.password=awifi@123
mysql.numconnections=100### executor配置
### 添加执行器端口设置executor.port,
### web-server中配置的executor.port应与该端口一致
###
# Azkaban Executor settings
executor.maxThreads=50
executor.flow.threads=30
executor.port=12321
2.1.2.2 execute-as-user.c编译
### 进入软件源码包所在路径:
###
cd /usr/local/software/azkaban-3.90.0/az-exec-util/src/main/c### 将其下的execute-as-user.c文件拷贝到azkaban的安装目录,
### (该目录自己指定即可,但后文配置时需指向该目录)
###
cp execute-as-user.c /usr/local/apps/azkaban/### 之后到azkaban的安装目录中
###
cd /usr/local/apps/azkaban### 执行如下命令进行编译
###
gcc execute-as-user.c -o execute-as-user

之后查看该目录:

发现编译多出了一个execute-as-user文件

2.1.2.3 jobtype配置
### 进入软件源码包目录
###
cd /usr/local/software/azkaban-3.90.0/az-hadoop-jobtype-plugin/src/jobtypes

查看如下:

### 将其下除了spark的所有文件拷贝到azkaban/azkaban-exec-server的安装目录下的plugins/jobtypes下
### (因为未安装spark,若安装了spark则全部都拷贝)
###
cp -r * /usr/local/apps/azkaban/azkaban-exec-server/plugins/jobtypes/
cd /usr/local/apps/azkaban/azkaban-exec-server/plugins/jobtypes/
rm -rf spark/

编辑/usr/local/apps/azkaban/azkaban-exec-server/plugins/jobtypes/下的commonprivate.properties文件:

### hadoop安全验证类,hadoop1.x用HadoopSecurityManager_H_1_0,
### hadoop2.x以上用HadoopSecurityManager_H_2_0
###
## hadoop security manager setting common to all hadoop jobs
#hadoop.security.manager.class=azkaban.security.HadoopSecurityManager_H_1_0
hadoop.security.manager.class=azkaban.security.HadoopSecurityManager_H_2_0### kerberos配置,修改为你自身的keytab文件与账户
###
## hadoop security related settings
# proxy.keytab.location=
# proxy.user=
proxy.keytab.location=/srv/kerberos/keytab/rd.keytab
proxy.user=rd/hadoop-server-003@HADOOP.COM### 去掉注释
###
#是否开启用户代理
azkaban.should.proxy=true
#是否应该请求令牌,hadoop为安全集群时必须开启
obtain.binary.token=true
#是否获取namenode令牌
obtain.namenode.token=true
#是否获取jobtracker令牌
obtain.jobtracker.token=true# global classpath items for all jobs. e.g. hadoop-core jar, hadoop conf
#jobtype.global.classpath=${hadoop.home}/*,${hadoop.home}/conf# global jvm args for all jobs. e.g. java.io.temp.dir, java.library.path
#jobtype.global.jvm.args=### 修改为你自身的hadoop、hive、spark目录,jobtype.global.classpath目录,
### 并添加hadoop.conf.dir,注意该配置项必需
### (或者在环境变量中添加HADOOP_CONF_DIR好像也可以,未验证)
###
# hadoop
hadoop.home=/usr/local/apps/hadoop
hadoop.conf.dir=/usr/local/apps/hadoop/etc/hadoop
jobtype.global.classpath=${hadoop.conf.dir},${hadoop.home}/share/hadoop/common/*,${hadoop.home}/share/hadoop/common/lib/*,${hadoop.home}/share/hadoop/mapreduce/*,${hadoop.home}/share/hadoop/mapreduce/lib/*,${hadoop.home}/share/hadoop/yarn/*,${hadoop.home}/share/hadoop/yarn/lib/*,${hadoop.home}/share/hadoop/hdfs/*,${hadoop.home}/share/hadoop/hdfs/lib/*
#pig.home=
#hive.home=
hive.home=/usr/local/apps/hive
#spark.home=# configs for jobtype security settings### 修改为false
###
# set execute-as-user
execute.as.user=false### 指向你编译出的execute-as-user文件目录地址
###
#azkaban.native.lib=
azkaban.native.lib=/usr/local/apps/azkaban

修改common.properties文件,将hadoop.home等改为自己的目录,并添加hadoop.conf.dir配置:

## everything that the user job can knowhadoop.home=/usr/local/apps/hadoop
hadoop.conf.dir=/usr/local/apps/hadoop/etc/hadoop
hive.home=/usr/local/apps/hive
#pig.home=
#spark.home=#azkaban.should.proxy=

2.1.3 web-server配置

2.1.3.1 web的azkaban配置

进入/usr/local/apps/azkaban/azkaban-web-server/conf,修改azkaban.properties

### 修改时区,
### web.resource.dir修改为绝对路径,指向azkaban-web-server下的web/目录
### 其余也可个性化修改
###
# Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=/usr/local/apps/azkaban/azkaban-web-server/web
default.timezone.id=Asia/Shanghai### 保持默认,web端用户管理配置,可在azkaban-users.xml中编辑登录用户的信息
###
# Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml### 全局配置文件路径、以及项目文件路径地址,不做修改,默认
###
# Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects### 不做修改,默认
# Velocity dev mode
velocity.dev.mode=false### jetty设置
### jetty.port网页端口,应与exec-server中配置的azkaban.webserver.url一致
###
# Azkaban Jetty server properties.
jetty.use.ssl=false
jetty.maxThreads=25
jetty.port=8081### 执行器端口,应与exec-server中配置的executor.port一致
###
# Azkaban Executor settings
executor.port=12321### 保持默认
# mail settings
mail.sender=
mail.host=### 保持默认
###
# User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.
# enduser -> myazkabanhost:443 -> proxy -> localhost:8081
# when this parameters set then these parameters are used to generate email links.
# if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.
# azkaban.webserver.external_hostname=myazkabanhost.com
# azkaban.webserver.external_ssl_port=443
# azkaban.webserver.external_port=8081
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache### 保持默认
###
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true### 修改为与exec-server中配置的mysql属性一致
###
# Azkaban mysql settings by default. Users should configure their own username and password.
database.type=mysql
mysql.port=3306
mysql.host=hadoop-server-002
mysql.database=azkaban
mysql.user=root
mysql.password=awifi@123
mysql.numconnections=100### 多个Executor时必须配以下参数设置,并且在filters中去掉MinimumFreeMemory,其他默认
### 在每次分发job时,先过滤出满足条件的executor,然后再做比较筛选
### 如最小剩余内存,MinimumFreeMemory,过滤器会检查executor空余内存是否会大于6G,如果不足6G,则web-server不会将任务交由该executor执行。可参考Azkaban Github源码
### 如CpuStatus,过滤器会检查executor的cpu占用率是否达到95%,若达到95%,web-server也不会将任务交给该executor执行。可参考Azkaban Github源码。
### 参数含义参考官网说明
### http://azkaban.github.io/azkaban/docs/latest/#configuration
###
#Multiple Executor
azkaban.use.multiple.executors=true
#azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
# 由于是虚拟机,不需要过滤,只需要比较即可
# 某个任务是否指定了executor id
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
# 是否比较内存
azkaban.executorselector.comparator.Memory=1
# 是否最后一次被分发
azkaban.executorselector.comparator.LastDispatched=1
# 是否比较CPU
azkaban.executorselector.comparator.CpuUsage=1

3. 启动

3.1 修改启动脚本

3.1.1 修改exec-server的启动脚本:

vi /usr/local/apps/azkaban/azkaban-exec-server/bin/internal/internal-start-executor.sh
找到下面部分,将其中的CLASSPATH部分改为你自身的hadoop环境:

if [ "$HADOOP_HOME" != "" ]; thenecho "Using Hadoop from $HADOOP_HOME"CLASSPATH=$CLASSPATH:$HADOOP_HOME/etc/hadoop:$HADOOP_HOME/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/yarn/*:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/hdfs/lib/*JAVA_LIB_PATH="-Djava.library.path=$HADOOP_HOME/lib/native/Linux-amd64-64"
elseecho "Error: HADOOP_HOME is not set. Hadoop job types will not run properly."
fi

3.1.2 修改web-server的启动脚本

同理
vi /usr/local/apps/azkaban/azkaban-web-server/bin/internal/internal-start-web.sh
找到下面部分,将其中的CLASSPATH部分改为你自身的hadoop环境:

if [ "$HADOOP_HOME" != "" ]; thenecho "Using Hadoop from $HADOOP_HOME"CLASSPATH=$CLASSPATH:$HADOOP_HOME/etc/hadoop:$HADOOP_HOME/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/yarn/*:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/hdfs/lib/*JAVA_LIB_PATH="-Djava.library.path=$HADOOP_HOME/lib/native/Linux-amd64-64"
elseecho "Error: HADOOP_HOME is not set. Hadoop job types will not run properly."
fi

3.2 命令启动关闭

先启动exec-server,后启动web-server,需要在其根目录运行启动命令。

若是想Multiple Executor方式启动,则将上面配置好的azkaban-exec-server分发到其他机器节点即可,然后在每一台上机器上都启动激活exec-server

启动exec-server,并激活:
激活命令如下:curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo

### 启动执行器
###
[rd@hadoop-server-002 aa]$ cd /usr/local/apps/azkaban/azkaban-exec-server/
[rd@hadoop-server-002 azkaban-exec-server]$ ./bin/start-exec.sh
###
### 激活执行器,也必须在根目录运行
###
[rd@hadoop-server-002 azkaban-exec-server]$ curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo

启动后,该目录如下:

再启动web-server:

[rd@hadoop-server-002 azkaban-exec-server]$ cd /usr/local/apps/azkaban/azkaban-web-server/
[rd@hadoop-server-002 azkaban-web-server]$ ./bin/start-web.sh

启动后该目录如下:

关闭命令(也需要在根目录执行):

### 关闭web-server
###
[rd@hadoop-server-002 azkaban-web-server]$ ./bin/shutdown-web.sh
### 关闭exec-server
###
[rd@hadoop-server-002 azkaban-exec-server]$ ./bin/shutdown-exec.sh

注意:每次重启执行器exec-server,都需要重新激活,且重启web-server

登录访问web端:http://hadoop-server-002:8081/

azkaban安装使用相关推荐

  1. Azkaban安装部署,配置文件配置,启动等

    1 Azkaban安装部署 准备工作 Azkaban Web服务器 azkaban-web-server-2.5.0.tar.gz Azkaban执行服务器 azkaban-executor-serv ...

  2. 系统讲解Azkaban安装及基本操作实用篇

    一,概述 1.1什么是 Azkaban Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的key:va ...

  3. azkaban安装Solo Server

    azkaban安装 Solo Server azkaban 3.57.0 编译 1.下载源码包 官网地址为:https://github.com/azkaban/azkaban/archive/3.5 ...

  4. Azkaban的囚徒——Azkaban安装和介绍

    文章目录 Azkaban简介 Azkaban安装 Azkaban配置 azkaban.properties azkaban-users.xml Azkaban简介 为什么需要工作流调度器? 1.一个完 ...

  5. azkaban安装编译3.86 教程

    Azkaban is a batch workflow job scheduler created at LinkedIn to run Hadoop jobs. Azkaban resolves t ...

  6. azkaban 安装

    准备工作 1) 创建相应的文件夹 mkdir /opt/azkaban-3.34 2) 编译环境 yum -y install make gcc-c++ cmake bison-devel ncurs ...

  7. 【错误处理】Azkaban安装失败 installation Failed.Error chunking

    上篇文章我们讲到Azkaban的安装,很多时候我们安装并不是一帆风顺的,需要不断的修正,修改:那么废话不多说,我们来看看一些常规的Azkaban的错误处理: 1.installation Failed ...

  8. azkaban 安装 使用

    目录 拷贝安装包 解压 改名 修改MySQL配置文件 创建数据库 导入数据表 修改配置文件 修改azkaban-exec下面文件 修改azkaban.properties文件 修改 commonpri ...

  9. Azkaban 安装部署

    1.安装前准备 链接:https://pan.baidu.com/s/1TRiZjxCbn_ilG4q7Oo7wBQ?pwd=38s5  提取码:38s5 1) 将 Azkaban Web 服务器.A ...

最新文章

  1. QUIC实战(四) 设置应用开机自启动
  2. Fragment滑动切换简单案例
  3. C算法编程题(二)正螺旋
  4. 在输出终端中消除多余空格
  5. 你手中的iPhone 7已过时!被苹果列为清仓产品,或为iPhone SE2让路
  6. Firefox开发者版本终于支持Windows 64位
  7. provisional headers are shown问题解决
  8. [Arch]常用软件安装使用
  9. access查找出生日期年份_Access时间日期比较查询的方法总结
  10. ipa在线安装搭建_在线安装IPA 文件和视频下载
  11. 程序员在大城市奋斗的理由,仅为追求那些不曾见过的五光十色
  12. 修真院教学模式三大阶段之任务体系
  13. 凯撒移位密码python_凯撒密码python拓展程序
  14. android os适配机型,系统和支持机型对比
  15. 传奇背词 商业经济类第一篇 消费者该怎么做?
  16. python九九乘法表矩形_python九九乘法表和打印图形程序
  17. Java中excel的导出导入
  18. 打造属于自己的TensorFlow(一)之SimpleFlow-计算图与前向传播
  19. 蓝桥杯十二届校内模拟赛 黄绿蓝小球方案(DFS)
  20. 银行核心系统和银行信贷系统【杭州多测师】【杭州多测师_王sir】

热门文章

  1. CentOS安装外部源,然后通过yum安装rhythmbox音乐播放插件
  2. flyway和p6spy整合springboot
  3. p6spy-自动填充日志中SQL的查询条件
  4. SSM框架搭建(三)--整合p6spy
  5. 打砖块小游戏php程序,javascript实现打砖块小游戏(附完整源码)
  6. 搭建人工智能wx机器人完整版教程
  7. 不,苹果不是下一个黑莓!但可能是下一个微软
  8. 重庆那所大学计算机专业最好,重庆哪所大学的计算机专业比较好
  9. 数青蛙​、[USACO10FEB]Chocolate Giving S
  10. itcast-spring