Azkaban在IDEA下debug环境搭建笔记

时间:2022-12-12 18:00:21

1. 主要目的

在Windows下,使用IDEA开发工具,打开azkaban源代码的操作步骤的说明。

用于测试、开发环境搭建、源代码查看、二次开发。

在整个过程中,对相关的gradle构建工具、IDEA工具的操作及流程说明。新手可参考此文档能快速操作。

构建过程中,可能碰到的异常及处理方式。

2. 环境依赖

2.1. 安装git工具

下载并安装git工具。安装网址参考:https://blog.csdn.net/mukes/article/details/115693833

2.2.IDEA的gradle配置

选择:文件-->设置...

Azkaban在IDEA下debug环境搭建笔记

2、配置Gradle用户主目录,如:D:/gradle/repository。

此目录为构建工具的本地库地址,用于存放下载后的jar文件。

Azkaban在IDEA下debug环境搭建笔记

3.Azkaban开发环境构建

在window下操作。

3.1. 下载源码

3.1.1.git下载方式:

下载并安装git工具,参考:https://blog.csdn.net/mukes/article/details/115693833

新建azkaban目录,如:azkaban_main,运行以下命令:

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

3.1.2. 手工下载源代码方式:

下载地址:https://codeload.github.com/azkaban/azkaban/tar.gz/refs/tags/3.88.0

右击,解压azkaban-3.88.0.tar.gz文件。可修改目录名为:azkaban-main。

解压后目录结构如下:

Azkaban在IDEA下debug环境搭建笔记

2.2. IDEA工具加载azkaban源码

2.2.1.新建源项目

在IDEA工具中,选择菜单:文件-->新建-->从现有源项目...

Azkaban在IDEA下debug环境搭建笔记

2.2.2.选择build.gradle文件

在弹开的窗口中,选择D:\workspace\azkaban-3.88.0\azkaban-main\build.gradle文件。

Azkaban在IDEA下debug环境搭建笔记

2.2.3. 工程创建完成

加截完成后,IDEA的效果如下:

Azkaban在IDEA下debug环境搭建笔记

2.3. Gradle构建项目

2.3.1. 展开Gradle操作界面

点击IDEA的右上角“Gradle”,展开窗口,界面如下:

Azkaban在IDEA下debug环境搭建笔记

2.3.2. 点击“重新加载所有Gradle项目”

运行完成后,将出现“Negative time”异常。先忽略此异常,继续下一步操作。

2.3.3. 配置阿里云镜像仓库

打开build.gradle文件,为加快依赖文件的下载,配置阿里云镜像仓库,添加如下圈圈的配置内容:

Azkaban在IDEA下debug环境搭建笔记

2.3.4. 下载工程所需要的jar文件。

右击项目,选择“刷新Gradle依赖项”,下载工程所需要的jar文件。

所依赖的文件比较下,下载需要一定的耗时。

下载的jar文件(约1.3G的大小),取决于build.gradle文件中的配置项:“ext.deps”。

Azkaban在IDEA下debug环境搭建笔记

2.4. IDEA运行环境配置

2.4.1. 统一各模块的配置文件

1、在D:\workspace\azkaban-3.88.0\azkaban-main下,新建目录conf,用于存放统一的配置文件。

2、将D:\workspace\azkaban-3.88.0\azkaban-main\azkaban-web-server\src\main\resources\conf下的文件,复制到D:\workspace\azkaban-3.88.0\azkaban-main\conf\下。

2.4.2. AzkabanWebServer.java的运行参数

1、在IDEA中,右击AzkabanWebServer.java类,进行运行属性的设置。

azkaban-web-server\src\main\java\azkaban\webapp\AzkabanWebServer.java

2、VM options:

-Djava.io.tmpdir=D:\workspace\azkaban-3.88.0\azkaban-main\temp -Dlog4j.cnotallow=file:D:\workspace\azkaban-3.88.0\azkaban-main\conf\log4j.properties -Dserverpath=D:\workspace\azkaban-3.88.0\azkaban-main\azkaban-web-server\build\install\azkaban-web-server

3、Program arguments:

-conf D:\workspace\azkaban-3.88.0\azkaban-main\conf

2.4.3. AzkabanExecServer.java的运行参数

1、在IDEA中,右击AzkabanExecServer.java类,进行运行属性的设置。

azkaban-exec-server\src\main\java\azkaban\webapp\AzkabanExecServer.java

2、VM options:

-Djava.io.tmpdir=D:\workspace\azkaban-3.88.0\azkaban-main\temp -Dlog4j.cnotallow=file:D:\workspace\azkaban-3.88.0\azkaban-main\conf\log4j.properties -Dserverpath=D:\workspace\azkaban-3.88.0\azkaban-main\azkaban-exec-server\build\install\azkaban-exec-server

3、Program arguments:

-conf D:\workspace\azkaban-3.88.0\azkaban-main\conf

2.4.4.配置文件azkaban.properties的修改

修改:D:\workspace\azkaban-3.88.0\azkaban-main\azkaban.properties。

# WEB工具的根目录路径配置
web.resource.dir=E:\\azkaban-3.88.0\\azkaban-main\\azkaban-web-server\\src\\web
# 时区配置
default.timezone.id=Asia/Shanghai

...

# 数据库连接配置
database.type=mysql
mysql.port=3308
mysql.host=10.133.11.11
mysql.database=azkaban
mysql.user=root
mysql.password=jian@1122
mysql.numcnotallow=100

2.5. 构建过程中的异常及处理

2.5.1. mysql数据库版本差异而导致运行异常。

azkaban自带的mysql jdbc驱动,版本是:5.1.28,而我本地安装的mysql,是8.0.30版本。

数据库版本或驱动,引起的异常类型有:

java.math.BigInteger cannot be cast to java.lang.Long异常报错解决方法

Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件

处理方式:

1、修改build.gradle文件

mysqlConnector       : 'mysql:mysql-connector-java:5.1.28',
改为:
mysqlConnector : 'mysql:mysql-connector-java:8.0.16',

2、重新构建gradle项目

Azkaban在IDEA下debug环境搭建笔记

2.5.2. 构建环境异常

构建环境没配置好,或依赖包没下载,提示的异常:

1、package org.assertj.core.util does not exist

2、java: 找不到符号符号:类 xxx位置:程序包 xxx.xxx