azkaban3.x编译安装及使用

1.环境准备

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum -y install wget httpd-tools vim
yum install -y git
1.就把gcc当成c语言编译器, g++当成c++语言编译器用就是了.(知乎)
2.wget是一个从网络上自动下载文件的自由工具, 可以在用户退出系统的之后在继续后台执行, 直到下载任务完成.(百度百科)
3.下载azkaban包
git clone https://github.com/azkaban/azkaban.git

直接官网下载最新包
https://github.com/azkaban/azkaban/releases
4.查看gcc版本信息
gcc --version
5.自行安装好mysql
https://blog.csdn.net/qq_25073261/article/details/104054320

2.安装

前言:编译失败的可于本文末尾下载已编译好的包,跳过编译步骤,进行第五步

1.将azkaban-3.90.0.tar.gz解压到/data目录下,并进入azkaban目录
tar -zxvf azkaban-3.90.0.tar.gz -C /data
在这里插入图片描述
2.优化编译速度
查看azkaban-3.90.0/gradle/wrapper/gradle-wrapper.properties文件:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

可以看到依赖的gradle为4.6版本,从https://gradle.org/releases/下载对应版本的gradle的zip包,放到/data/azkaban-3.90.0/gradle/wrapper目录下。

然后修改gradle-wrapper.properties文件的最后一行,改为:

#distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
distributionUrl=gradle-4.6-all.zip

3.编译
cd /data/azkaban-3.90.0

##编译命令任选其一
./gradlew build
./gradlew build installDist
./gradlew build installDist -x test
./gradlew distTar

##编译失败,需要清理后,再次编译
./gradlew clean     

博主最终是用./gradlew build 编译成功的

注:编译过程中需要注意以下问题:

因为编译的过程需要下载大量的 Jar 包,下载速度根据网络情况而定,通常都不会很快,如果网络不好,耗费半个小时,一个小时都是很正常的;
编译过程中如果出现网络问题而导致 JAR 无法下载,编译可能会被强行终止,这时候重复执行编译命令即可,gradle 会把已经下载的 JAR 缓存到本地,所以不用担心会重复下载 JAR 包。

4.历经千辛(断断续续编译近2天),终成正果
在这里插入图片描述
5.安装配置
a.分别复制下面方框内4个文件夹里编译后的.tar.gz文件到 /data/azkaban,并解压

mkdir -p /data/azkaban
cd  /data/azkaban-3.90.0

cp azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz /data/azkaban
cp azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz /data/azkaban
cp azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz /data/azkaban
cp azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz /data/azkaban

tar -zxvf  azkaban-db-0.1.0-SNAPSHOT.tar.gz -C /data/azkaban/
tar -zxvf  azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C /data/azkaban/
tar -zxvf  azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C /data/azkaban/
tar -zxvf  azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C /data/azkaban/

在这里插入图片描述
解压后目录
在这里插入图片描述
b.mysql配置
进入mysql所在的节点,用root用户登录mysql
mysql> create database azkaban;
Query OK, 1 row affected (0.00 sec)

mysql> use azkaban;
Database changed

再回到azkaban坐在节点并进入到azkaban-db-0.1.0-SNAPSHOT里面,获取create-all-sql-0.1.0-SNAPSHOT.sql,并发送在mysql所在节点/data/soft/目录下,复制完整路径在mysql里面source,会在azkaban数据库当中自动创建所需要的所有的表
mysql> source /data/soft/create-all-sql-0.1.0-SNAPSHOT.sql

然后再创建azkaban用户
CREATE USER ’ azkaban’@’%’ IDENTIFIED BY ‘azkaban’;

创建完成以后给azkaban用户赋权
grant all privileges on azkaban.* to azkaban@localhost identified by ‘azkaban’;
flush privileges;

然后就可以用azkaban进行登录mysql数据库了
在这里插入图片描述
c.配置azkaban-web-server-0.1.0-SNAPSHOT
cd /data/azkaban/azkaban-web-server-0.1.0-SNAPSHOT
执行以下命令
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
口令密码123456,须记住,后面会用到
前5个可不用输入直接回车,第6个国家/地区输入CN,第7个输入Y
秘钥口令建议与秘钥库口令保持一致
详见下图
在这里插入图片描述
d.拷贝 azkaban-solo-server下的文件到 azkaban-exec-server中
cd /data/azkaban/azkaban-solo-server-0.1.0-SNAPSHOT
cp -a ./conf/ ./plugins/ …/azkaban-exec-server-0.1.0-SNAPSHOT
选择覆盖
在这里插入图片描述
然后进入到/data/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT/conf/配置azkaban.properties
cd /data/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT/conf/
vim azkaban.properties 改动点如下

# 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=America/Los_Angeles
default.timezone.id=Asia/Shanghai
# Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/data/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/conf/azkaban-users.xml
# Loader for projects
executor.global.properties=/data/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT/conf/global.properties
azkaban.project.dir=projects
database.type=h2
h2.path=./h2
h2.create.tables=true
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.use.ssl=false
jetty.maxThreads=25
jetty.port=8081

// add
jetty.ssl.port=8443
jetty.keystore=keystore
jetty.password=azkaban
jetty.keypassword=azkaban
jetty.truststore=keystore
jetty.trustpassword=azkaban

# 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
# Azkaban plugin settings
azkaban.jobtype.plugin.dir=/data/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT/plugins/jobtypes
# Number of executions to be displayed
azkaban.display.execution_page_size=16
azkaban.use.multiple.executors=true

// add
database.type=mysql
mysql.port=3306
mysql.host=10.98.59.196
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

# 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

在这里插入图片描述
继续在conf目录下编辑log4j.properties,注释掉已经有的,并在下面增加一行
vim log4j.properties

#log4j.rootLogger=INFO, Console
#log4j.logger.azkaban=INFO, server
#log4j.appender.server=org.apache.log4j.RollingFileAppender
#log4j.appender.server.layout=org.apache.log4j.PatternLayout
#log4j.appender.server.File=logs/azkaban-execserver.log
#log4j.appender.server.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS Z} %p [%c{1}] [Azkaban] %m%n
#log4j.appender.server.MaxFileSize=102400MB
#log4j.appender.server.MaxBackupIndex=2
#log4j.appender.Console=org.apache.log4j.ConsoleAppender
#log4j.appender.Console.layout=org.apache.log4j.PatternLayout
#log4j.appender.Console.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS Z} %p [%c{1}] [Azkaban] %m%n

log4j.rootLogger=INFO,C
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.err
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

e.在azkaban-exec-server目录下创建文件夹:
cd /data/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT
mkdir extlib

将lib目录下的mysql驱动复制到extlib目录下
cp lib/mysql-connector-java-5.1.28.jar extlib/

再将配置好的文件拷贝到azkaban-web-server目录下(选择覆盖)
cp -a conf/ extlib/ …/azkaban-web-server-0.1.0-SNAPSHOT
在这里插入图片描述

分别进入到azkaban-exec-server和azkaban-web-server执行bin/start-exec.sh和bin/start-web.sh
cd /data/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT
bin/start-exec.sh
cd /data/azkaban/azkaban-web-server-0.1.0-SNAPSHOT
bin/start-web.sh

再去azkaban使用的mysql数据库中的executors表中查看是否存在active = 1的executor,如果没有,更新即可。
mysql -uazkaban -pazkaban
show databases;
use azkaban;
show tables;
select *from executors;
若active = 0,则下一步,否则直接页面登录
在这里插入图片描述
当active=0时,
update executors set active=1 where id = 1;
然后再查看
select *from executors;
在这里插入图片描述
f.先jps -l查看进程,停掉azkaban的进程
然后再次执行以上启动azkaban的命令分别进入到azkaban-exec-server和azkaban-web-server执行bin/start-exec.sh和bin/start-web.sh
jps -l
kill -9 25612
cd /data/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT
bin/start-exec.sh
cd /data/azkaban/azkaban-web-server-0.1.0-SNAPSHOT
bin/start-web.sh
在这里插入图片描述
g.启动成功后,页面登录
http://10.98.59.198:8081/
用户名/密码 为之前在mysql配置的 zakaban/zakaban

在这里插入图片描述

3.使用

详细使用见 标题三 Azkaban实战 https://blog.csdn.net/qq_25073261/article/details/105844352

测试调度是否成功,简单demo
a.在azkaban安装节点创建测试脚本

#/bin/bash
echo `date` >> /data/datax/job_new/test.txt
echo `date`

在这里插入图片描述
b.在服务器外编辑job文件
创建test.job文件,内容如下,并打包成zip

# test.job
type=command
command=sh /data/datax/job_new/test.sh

在这里插入图片描述
c.在浏览器登录azkaban界面,并创建test工程
在这里插入图片描述
d.设置定时调度1分钟执行1次
在这里插入图片描述
e.过段时间,查看执行结果
在这里插入图片描述
点进其中一个,查看具体详情,这里点的执行id为21的
在这里插入图片描述
f.服务器上验证结果(test.txt是否写入了)
在这里插入图片描述
g.验证成功,收工

附录
可配合datax相关脚本进行数据同步
datax同步数据到elasticsearch、mongodb、hdfs(hive)示例
https://blog.csdn.net/qq_25073261/article/details/105220976

编译及编译后的相关包
1.gradle-4.6-all组件.zip 下载后需解压一次获得gradle-4.6-all.zip压缩包(该包不需要再解压了)
https://download.csdn.net/download/qq_25073261/12655756
2.azkaban3.90已编译后的tar.gz包azkaban3.90_tar_gz.zip
https://download.csdn.net/download/qq_25073261/12655820
3.azkaban3.90已编译后的zip包azkaban3.90.zip
https://download.csdn.net/download/qq_25073261/12655819

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
版本:3.38,解压后,配置自己的环境可直接用 azkaban-3.38.0\azkaban-db azkaban-3.38.0\azkaban-exec-server azkaban-3.38.0\azkaban-solo-server azkaban-3.38.0\azkaban-web-server ----------------后续步骤------------------ 1.创建数据库并导入基本数据 (1)创建数据库 create database azkaban; (2)mysql授权 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH PRIVILEGES; (3)导入数据 use azkaban; source /opt/azkaban-3.38.0/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql 2. ssl配置 cd /opt/azkaban-3.38.0\azkaban-web-server keytool -keystore keystore -alias jetty -genkey -keyalg RSA 输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? [Unknown]: xue 您的组织单位名称是什么? [Unknown]: xue 您的组织名称是什么? [Unknown]: xue 您所在的城市或区域名称是什么? [Unknown]: beijing 您所在的省/市/自治区名称是什么? [Unknown]: beijing 该单位的双字母国家/地区代码是什么? [Unknown]: CN CN=xue, OU=xue, O=xue, L=beijing, ST=beijing, C=CN是否正确? [否]: Y 输入 的密钥口令 (如果和密钥库口令相同, 按回车): 3.修改azkaban-exec-server下配置文件,引入mysql的依赖包 (1)将azkaban-solo-server下conf、plugins、sql目录复制到azkaban-exec-server目录下 cd azkaban-3.38.0/azkaban-solo-server/ cp -a ./conf ./plugins ./sql ../azkaban-exec-server (2)修改azkaban-exec-server/conf/的azkaban.properties文件 # Azkaban Personalization Settings azkaban.name=master 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/azkaban-3.38.0/azkaban-exec-server/conf/azkaban-users.xml # Loader for projects executor.global.properties=/opt/azkaban-3.38.0/azkaban-exec-server/conf/global.properties azkaban.project.dir=projects database.type=mysql mysql.port=3306 mysql.host=master mysql.database=azkaban mysql.user=root mysql.password=123456 mysql.numconnections=100 (其他默认) 4. 在conf目录下新建log4j.properties文件 [root@master azkaban-exec-server]# vim conf/log4j.properties 复制以下内容到log4j文件: log4j.rootLogger=INFO, Console log4j.logger.azkaban=INFO, server log

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值