Azkaban安装部署教程

Azkaban安装部署教程

源码编译

  1. 换行符-设置(git、IDEA、NotePadd++)
背景
    1. 系统说明-换行符:windows上换行符是CRLF;linux或者Mac OS上是LF
    2. 统一为LF的原因:
        1)由于我们最后的代码都是要部署到linux的,所以就统一设置成LF
        2)不设置为LF的话,会导致windows下的某些shell脚本,放到linux上执行不了

设置
    1. git设置
        1)git config --global core.eol lf #统一换行符为 lf
        2)git config --global core.autocrlf false #将自动转换关闭,避免转换失败不能不同进行提交
        3) git config --global core.safecrlf true #禁止混用 lf 和 crlf 两种换行符,混用后则不能提交代码
        4)git config --global --list # 查看设置生效没

    2. IDEA设置
        1)File -> Settings -> Editor -> Code Style -> Line separator -> Unix and macOS

    3. NotePadd++设置
        1)Settings-Preferences-New Documnet
              - 选择Unix(LF)
  • 下载源码
git clone https://github.com/azkaban/azkaban.git

#ps 如果github下载慢的话可以去码云上面下载
码云地址:https://gitee.com/mirrors/azkaban?_from=gitee_search

git clone https://gitee.com/mirrors/azkaban.git

#ps,下载后找随便检验下两个脚本或者配置文件,使用记事本打开,看文件分隔符是否是LF,如下图就行

  • 切换分支
git tag #查看所有tag

git checkout 3.80.0 #切换版本,我这儿选择的3.80.0版本进行编译的
  • 修改修改build.gradle文件(添加aliyun maven仓库)
buildscript {
  repositories {
    maven { url 'https://maven.aliyun.com/repository/public/' }#这段是我加的阿里云maven仓库
    mavenCentral()
    /*#maven { url 'https://plugins.gradle.org/m2/'} #注释掉本来的maven仓库*/
  }
  dependencies {
    classpath 'com.cinnober.gradle:semver-git:2.2.3'
    classpath 'net.ltgt.gradle:gradle-errorprone-plugin:0.0.14'
  }
}
 
allprojects {
  apply plugin: 'jacoco'
 
  repositories {
    maven { url 'https://maven.aliyun.com/repository/public/' }
    mavenCentral()
    mavenLocal()
  }
}
  • 编译
./gradlew build installDist -x test 
#该项目根目录下自带的gradlew,是gradle4.6版本的,可直接用,不需要额外装gradle环境
#-x test 跳过单元测试
  1. 编译报错1:如下图,原因是因为包没下载下来,解决办法就是去本地仓库D:/mvnRepos/org/xerial/snappy/snappy-java/1.1.2.4删除了,之后重新执行./gradlew build installDist -x test编译命令,直到成功显示

  • 编译完成后将下面的4个模块里面的build/distributions/下将tar包拷贝到服务器上的/opt/env/azkaban-3.80.0目录下(没有此目录的话使用mkdir -p /opt/env/azkaban-3.80.0创建就行)

 

 

 

安装

环境准备

  • 添加azkaban用户组和用户
groupadd azkaban 

useradd -r -g azkaban azkaban
  • mysql创建azkaban数据库、并授权
mysql> create database azkaban;

mysql> create user 'azkaban'@'%' identified by 'azkaban';

mysql> grant all on azkaban.* to 'azkaban'@'your ip' identified by 'azkaban';

mysql> flush privileges;

安装azkaban-web

  • 导入相关azkaban数据
mysql> source /opt/env/azkaban-3.80.0/azkaban-db-3.80.0/create-all-sql-3.80.0.sql
  • 配置keystore
cd azkaban-web-server-3.80.0

keytool -keystore keystore -alias jetty -genkey -keyalg RSA

#ps:以下密码都设为azkaban
输入密钥库口令:  
密钥库口令太短 - 至少必须为 6 个字符
输入密钥库口令:  
再次输入新口令: 
您的名字与姓氏是什么?
[Unknown]:  
您的组织单位名称是什么?
[Unknown]:  
您的组织名称是什么?
[Unknown]:  
您所在的城市或区域名称是什么?
[Unknown]:  
您所在的省/市/自治区名称是什么?
[Unknown]:  
该单位的双字母国家/地区代码是什么?
[Unknown]:  
CN=cao, OU=parllay, O=fenghuotai, L=beijing, ST=beijing, C=CN是否正确?[否]:  Y
输入 <jetty> 的密钥口令
	(如果和密钥库口令相同, 按回车): 
完成后会在当前目录下生成一个keystore文件

 

  • 配置 conf/azkaban.properties
vim conf/azkaban.properties 
#内容如下
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

# Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager

# 路径一定要写绝对路径
user.manager.xml.file=/opt/env/azkaban/azkaban-web-3.80.0/conf/azkaban-users.xml
# Loader for projects路径一定要写绝对路径
executor.global.properties=/opt/env/azkaban/azkaban-web-3.80.0/conf/global.properties
azkaban.project.dir=projects

# database type
database.type=mysql
mysql.port=3306
mysql.host=your mysql server ip
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
jetty.password=azkaban
jetty.keypassword=azkaban
jetty.truststore=truststore
jetty.trustpassword=azkaban

# Azkaban Executor settings
executor.port=12321

# mail settings
mail.sender=
mail.host=

# 邮件
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache

# JMX stats
jetty.connector.stats=true
executor.connector.stats=true

# Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes

# Number of executions to be displayed
azkaban.display.execution_page_size=16
azkaban.use.multiple.executors=true

# Azkaban Ramp Feature Configuration
#Ramp Feature Related
azkaban.ramp.enabled=true
azkaban.ramp.status.polling.enabled=true
azkaban.ramp.status.polling.interval.min=30
azkaban.ramp.status.push.interval.threshold=15
azkaban.ramp.status.pull.interval.threshold=100
  • 用户设置
vim conf/azkaban-users.xml

<azkaban-users>
	<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
	<user username="metrics" password="metrics" roles="metrics"/>
	<user username= "admin" password="admin" roles="admin,metrics" /> #加这一行,可以用admin登陆
	<role name="admin" permissions="ADMIN" />
	<role name="metrics" permissions="METRICS"/>
</azkaban-users>
  • 添加mysql驱动包
cp mysql-connector-java-5.1.41-bin.jar /opt/env/azkaban-3.80.0/azkaban-web-server-3.80.0/lib/
  • 启动web界面
./bin/start-web.sh
ps:如果访问不了,可能是防火墙没关

# systemctl stop firewalld.service

安装Azkaban Executor Server

  • 解压
tar -zxvf azkaban-exec-server-3.80.0.tar.gz
  • 修改配置文件
cd azkaban-exec-server-3.80.0

vim conf/azkaban.properties

#Azkaban
default.timezone.id=Asia/Shanghai

# Azkaban JobTypes Plugins
azkaban.jobtype.plugin.dir=plugins/jobtypes

#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=yourip
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
  • 添加mysql驱动包
cp mysql-connector-java-5.1.41-bin.jar /opt/env/azkaban-3.80.0/azkaban-exec-server-3.80.0/lib/
  • 启动,一定要在bin目录下面启动
bin/azkaban-executor-start.sh 

Demo测试

  • 测试
 cat > /opt/azkaban-exec-server-3.80.0/projects/foo.job
 type=command
 command=echo "Hello World"

 cat > /opt/azkaban-exec-server-3.80.0/projects/bar.job
 type=command
 dependencies=foo
 command=echo bar

 7z a foobar.zip *.job    

 foobar zip在azkaban的前端上传执行结果如下:
  • 效果图

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值