azkaban的安装和配置

前提

  1. linux环境
  2. 安装mysql
  3. 一个邮箱,必须有授权码的密码
  4. Java开发环境(JAVA环境变量必须设置 检查:java javac )

编译和解压

1.克隆项目

$ git clone https://github.com/azkaban/azkaban.git

2.进入azkaban目录

$ cd azkaban

$ git checkout 版本号 

#版本号通过 https://github.com/azkaban/azkaban/releases 查看 

例 :git checkout 3.38.0

3.编译

$ ./gradlew distTar

//注意这行,被提示没有权限 -bash: ./gradlew: Permission denied

最后在 stackoverflow-gradlew: Permission Denied找到了答案:

$ chmod +x gradlew

# Azkaban builds use Gradle and requires Java 8 or higher. 

注意是Linux 系统 我用Centos 7 编译成功 

编译成功后 压缩包在build/distributions目录里 

在 /usr/src/文件夹下创建azkaban-tar文件

4.复制编译后的文件

$ cp  azkaban-*/build/distributions/*.tar.gz  /usr/src/azkaban-tar

一共5个:

  1. * azkaban-exec-server-3.38.0.tar.gz
  2. * azkaban-migration-3.38.0.tar.gz
  3. * azkaban-solo-server-3.38.0.tar.gz
  4. * azkaban-db-3.38.0.tar.gz
  5. * azkaban-web-server-3.38.0.tar.gz

5.解压压缩文件和重命名

tar -zxvf azkaban-db-3.38.0.tar.gz  

tar -zxvf azkaban-exec-server-3.38.0.tar.gz

tar -zxvf azkaban-hadoop-security-plugin-3.38.0.tar.gz

tar -zxvf azkaban-solo-server-3.38.0.tar.gz

tar -zxvf azkaban-web-server-3.38.0.tar.gz

mv azkaban-db-3.38.0  azkaban-db

mv azkaban-exec-server-3.38.0 azkaban-exec-server

mv azkaban-hadoop-security-plugin-3.38.0 azkaban-hadoop-security-plugin

mv azkaban-solo-server-3.38.0 azkaban-solo-server

mv azkaban-web-server-3.38.0 azkaban-web-server

安装

1.进入mysql    

$ mysql -uroot -p

2.创建数据库    

mysql > create database azkaban;

3.创建用户azkaban

mysql > CREATE USER 'azkaban'@'localhost' identified by '123456';

4.授于azkaban用户权限

 如果是服务器就把locathost改为服务器的地址

   GRANT ALL ON azkaban.* to 'azkaban'@'localhost'; 

5.更改库 

mysql > use azkaban;

6.导入sql :

mysql > source /usr/src/azkaban-tar/azkaban-db/create-all-sql-3.38.0.sql

7.创建SSL配置 (需要root权限)

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

8.在azkaban-web-server 下新建key文件夹 (需要root权限)

$ cp keystore azkaban/azkaban-web-server/key

部署  azkaban-web-server (需要root权限)

  将/usr/src/azkaban-tar/azkaban-solo-server下的conf目录

  拷贝到/usr/src/azkaban- tar/azkaban-web-server目录,

  $ cp -r  /usr/src/azkaban-tar/azkaban-solo-server/conf  /usr/src/azkaban-tar/azkaban-web-server/conf   

 配置azkaban.properties

##################################

#Azkaban Personalization Settings

azkaban.name=BigData

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=conf/azkaban-users.xml

#Loader for projects

executor.global.properties=conf/global.properties

azkaban.project.dir=projects

database.type=mysql

mysql.port=3306

mysql.host=localhost

mysql.database=azkaban

mysql.user=azkaban

mysql.password=123456

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=key/keystore

jetty.password=123456

jetty.keypassword=123456

jetty.truststore=key/keystore

jetty.trustpassword=123456

# 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

添加在 azkaban-web-server/conf/下添加: log4j.properties文件

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

部署   azkaban-exec-server 

  将/usr/src/azkaban-tar/azkaban-solo-server下的conf目录

  拷贝到/usr/src/azkaban-tar/azkaban-exec-server目录,

$ cp -r  /usr/src/azkaban-tar/azkaban-solo-server/conf  /usr/src/azkaban-tar/azkaban-exec-server/conf

 配置azkaban.properties

# Azkaban Personalization Settings

default.timezone.id=Asia/Shanghai

# Loader for projects

executor.global.properties=conf/global.properties

azkaban.project.dir=projects

database.type=mysql

mysql.port=3306

mysql.host=localhost  # 改为服务器的地址

mysql.database=azkaban

mysql.user=azkaban

mysql.password=123456

mysql.numconnections=100

# Azkaban Executor settings

executor.maxThreads=50

executor.port=12321

executor.flow.threads=30

# JMX stats

jetty.connector.stats=true

executor.connector.stats=true

# Azkaban plugin settings

azkaban.jobtype.plugin.dir=plugins/jobtypes

azkaban.native.lib=false

添加在 azkaban-web-server/conf/下添加: log4j.properties文件

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

a) 先关闭两个服务

b) 在编译好的  azkaban-solo-server 中将 plugins/jobtypes/commonprivate.properties 连带目录直接拷贝到

azkaban-exec-server 目录中,并在 commonprivate.properties 添加一条

azkaban.native.lib=false

commonprivate.properties 中有两条记录:

execute.as.user=false

azkaban.native.lib=false

9.启动web-server和exec-server

进入azkaban-exec-server目录,执行

bin/azkaban-executor-start.sh

进入azkaban-web-server目录,执行

bin/azkaban-web-start.sh

查看进程: 

$ jps

通过https://localhost:8443 (如果是服务器就把localhost改为服务器的地址)可访问到(谷歌浏览器)web-ui,可以开始创建任务, 访问是需要的用户名密码在 azkaban-web-server/conf/azkaban-users.xml 配置

停止azkaban-web-server

bin/azkaban-web-shutdown.sh

用户可以在conf/azkaban_user.xml中添加

<azkaban-users>     <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />     <user username="metrics" password="metrics" roles="metrics"/>     <role name="admin" permissions="ADMIN" />     <role name="metrics" permissions="METRICS"/> </azkaban-users>

mysql的账号是 root  密码为root,mysql用户的账号为azkaban 密码为123456

登录账号为azkaban 密码为 azkaban

运行程序为  

cd  /usr/src/azkaban-tar/azkaban-web-server

bin/azkaban-web-start.sh

运行程序:

cd /usr/src/azkaban-tar/azkaban-exec-server

bin/azkaban-executor-start.sh

然后查看状态: jps

启动

web服务器

在azkaban web服务器目录下执行启动命令

bin/azkaban-web-start.sh

注:在web服务器根目录运行

或者启动到后台

nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out 2>/tmp/azerr.out &

执行服务器

在执行服务器目录下执行启动命令

nohup bin/azkaban-executor-start.sh 1>/tmp/azstd.out 2>/tmp/azerr.out &

注:只能要执行服务器根目录运行

启动完成后,在浏览器(建议使用谷歌浏览器)中输入https://服务器IP地址:8443 ,即可访问azkaban服务了.在登录中输入刚才新的户用名及密码,点击 login.

配置邮件

# mail settings

mail.sender=you_emal@163.com # 邮箱账号

mail.host=smtp.163.com

mail.user=you_emal@163.com  # 邮箱账号

mail.password=xxxxx  # 授权密码

在job中使用

notify.emails = you_emal@163.com

failure.emails =you_emal@163.com

success.emails =you_emal@163.com

azkaban的使用

job配置选项

  • 可以定义job依赖另一个flow,配置

type=flow

flow.name=fisrt_flow

  • 可以设置每个job中子命令

type=command

command=echo "hello"

command.1=echo "world"

  • 可以配置job失败重启次数,及间隔时间,比如,上述ftp获取日志,我可以配置重试12次,每隔5分钟一次。

type=command

command=wget "ftp://file1" -O /data/file1

retries=12

#单位毫秒

retry.backoff=300000

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值