Azkaban的编译安装使用以及一些常见问题

 

1、下载源码

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

下载完成进行解压

 

2、编译

cd 到 azkaban 目录下,执行如下命令生成一系列文件

./gradlew distTar

 

Azkaban的编译安装使用以及一些常见问题_第1张图片

编译完成

 

3、创建工作目录,将编译后的jar包拷贝进来

mkdir azkaban

Azkaban的编译安装使用以及一些常见问题_第2张图片

 

拷贝tar包

cp azkaban-3.38.0/azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz azkaban

cp azkaban-3.38.0/azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz  azkaban

cp azkaban-3.38.0/azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz  azkaban

cp azkaban-3.38.0/azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz azkaban

解压tar包

tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz

tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz

tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz

tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz

重命名文件夹

mv azkaban-db-0.1.0-SNAPSHOT azkaban-db

mv azkaban-exec-server-0.1.0-SNAPSHOT azkaban-exec-server

mv azkaban-web-server-0.1.0-SNAPSHOT azkaban-web-server

mv azkaban-solo-server-0.1.0-SNAPSHOT/ azkaban-solo-server

删除tar包

最后结果

文件说明:

azkaban-db:初始化数据库存储相关。

azkaban-exec-server:调度执行相关。

azkaban-solo-server:单机安装配置相关。

azkaban-web-server:azkaban web页面。

 

4、初始化mysql数据库

mysql -uroot -pxxxx ##登录MySQL

create database azkaban;##创建azkaban数据库

use azkaban;

source /opt/soft/modul/azkaban/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql  ##导入相关表结构

 

5、创建SSL配置

执行命令:

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

按照提示进行输入

输入密钥库口令:                      1234567

再次输入新口令:                     1234567

您的名字与姓氏是什么?

  [Unknown]:  batman

您的组织单位名称是什么?

  [Unknown]: batman

您的组织名称是什么?

  [Unknown]: batman

您所在的城市或区域名称是什么?

  [Unknown]:  beijing

您所在的省/市/自治区名称是什么?

  [Unknown]:  beijing

该单位的双字母国家/地区代码是什么?

  [Unknown]:  CN

CN=sensing, OU=sensing, O=sensing, L=beijing, ST=beijing, C=CN是否正确?

  [否]:  y

输入  的密钥口令               1234567

    (如果和密钥库口令相同, 按回车):  

再次输入新口令:                    1234567

6、设置配置文件

将azkaban-solo中的配置和插件拷贝到exec下

cp -a azkaban-solo-server/conf/ azkaban-solo-server/plugins/ azkaban-exec-server/

修改配置文件

# Azkaban Personalization Settings

azkaban.name=sxfkpt    #名称

azkaban.label=Azkaban Server    #标签描述

azkaban.color=#FF3601    #色号

azkaban.default.servlet.path=/index

web.resource.dir=/opt/soft/azkaban-3.38.0/azkaban-web-server/web    #web资源路径

default.timezone.id=Asia/Shanghai    #时区

# Azkaban UserManager class

user.manager.class=azkaban.user.XmlUserManager

user.manager.xml.file=/opt/soft/azkaban-3.38.0/azkaban-web-server/conf/azkaban-users.xml    #用户权限配置文件

# Loader for projects

executor.global.properties=/opt/soft/azkaban-3.38.0/azkaban-web-server/conf/global.properties    #全局配置文件

azkaban.project.dir=projects

database.type=mysql        #MySQL相关配置

mysql.port=3306

mysql.host=192.168.1.140

mysql.database=azkaban

mysql.user=root

mysql.password=123456

mysql.numconnections=100

# Velocity dev mode

velocity.dev.mode=false

# Azkaban Jetty server properties.

jetty.use.ssl=false

jetty.maxThreads=25

jetty.port=8081

# 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=/opt/soft/azkaban-3.38.0/azkaban-exec-server/plugins/jobtypes    #plugins配置路径

 

为azkaban-web-server添加配置

创建一个azkaban-exec-server/conf/的软连接

ln -s /opt/soft/modul/azkaban/azkaban-exec-server/conf conf

 

8、启动服务

启动executor

sh azkaban-exec-server/bin/azkaban-executor-start.sh

启动成功

Azkaban的编译安装使用以及一些常见问题_第3张图片

启动web-server

 

启动成功

Azkaban的编译安装使用以及一些常见问题_第4张图片

 

页面登录:host:8081

初始用户名和密码都是:azkaban

Azkaban的编译安装使用以及一些常见问题_第5张图片

 

测试使用

Azkaban的编译安装使用以及一些常见问题_第6张图片

上传zip包

Azkaban的编译安装使用以及一些常见问题_第7张图片

上传成功:

Azkaban的编译安装使用以及一些常见问题_第8张图片Azkaban的编译安装使用以及一些常见问题_第9张图片

开始执行

执行成功:

Azkaban的编译安装使用以及一些常见问题_第10张图片

9、关闭服务

sh azkaban-exec-server/bin/azkaban-executor-shutdown.sh

sh azkaban-web-server/bin/azkaban-web-shutdown.sh

 

11、FAQ:

  • 1、log4j.properties文件不存在

Azkaban的编译安装使用以及一些常见问题_第11张图片

解决:创建一个log4j.properties文件放在 conf文件夹下

 

  • 2、 启动exec-server异常 , conf/global.properties不存在

解决: vim azkaban.properties 修改 executor.global.properties 为绝对路径 

 

  • 3、 启动exec-web异常 azkaban-users.xml文件不存在

解决:vim azkaban.properties 修改 user.manager.xml.file 为绝对路径 

 

  • 4、访问Azkaban UI界面

好不容易搭好了,页面无样式,心疼5秒钟,哈哈

 

解决: 修改azkaban.properties文件中的web.resource.dir 为/opt/soft/azkaban-3.38.0/azkaban-web-server/web    #web资源路径

重启web-server,再次访问,可以看到UI界面就正常了

 

  • 5、上传job文件时出现错误

azkaban.project.ProjectManagerException: Error Chunking during uploading files to db...

at azkaban.project.JdbcProjectImpl.uploadFileInChunks(JdbcProjectImpl.java:406)

at azkaban.project.JdbcProjectImpl.lambda$uploadProjectFile$2(JdbcProjectImpl.java:269)

原因: mysql根据配置文件会限制server接受的数据包大小。

解决:

进入mysql 查看一下当前设置大小,是不是小于了upload包的大小。

show VARIABLES like '%max_allowed_packet%';

可以通过环境变量设置让mysql立即生效,不用重启mysql

set global max_allowed_packet =2102410240(有可能不生效)

也可以通过编辑my.cnf来修改,在[mysqld]段或者mysql的server配置段进行修改。

max_allowed_packet = 500M

重启mysql 服务生效 。

  • 6、执行任务出现错误

20-06-2019 20:05:37 CST ganerateEtlTime ERROR - Job run failed!

azkaban.utils.UndefinedPropertyException: Missing required property 'azkaban.native.lib'

    at azkaban.utils.Props.getString(Props.java:421)

    at azkaban.jobExecutor.ProcessJob.run(ProcessJob.java:234)

    at azkaban.execapp.JobRunner.runJob(JobRunner.java:748)

    at azkaban.execapp.JobRunner.doRun(JobRunner.java:591)

    at azkaban.execapp.JobRunner.run(JobRunner.java:552)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

    at java.util.concurrent.FutureTask.run(FutureTask.java:266)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

    at java.lang.Thread.run(Thread.java:745)

20-06-2019 20:05:37 CST ganerateEtlTime ERROR - Missing required property 'azkaban.native.lib' cause: null

20-06-2019 20:05:37 CST ganerateEtlTime INFO - Finishing job ganerateEtlTime at 1561032337570 with status FAILED

解决: 在azkaban-exec-server/plugins/jobtypes 目录下添加commonprivate.properties配置文件,内容中添加:azkaban.native.lib=false

若修改后不生效,别担心,还有方法,哈哈,查看azkaban.properties文件。

azkaban.jobtype.plugin.dir=/opt/soft/azkaban-3.38.0/azkaban-exec-server/plugins/jobtypes    #plugins配置路径要填绝对路径

 

你可能感兴趣的:(Azkaban的编译安装使用以及一些常见问题)