azkaban源码编译

解决的问题:
azkaban代码是从gitHub上拉下来的,在本地上起是可以正常的收发邮件的,但是放在阿里云的环境上却无法收发邮件,报错:connect time out

通过看源码 发现原因是azkaban发送邮件默认使用的是STMP 25端口,但是在阿里云上25端口是被禁用的. 所以需要将25端口换到465端口 采用SSL协议传输邮件(25端口是非SSl协议传输).

需要在以下文件加入代码:
azkaban-common/src/main/java/azkaban/utils/EmailMessage.java中
在sendEmail()方法里props的配置代码下加入以下几行代码:

	Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
    final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
    props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
    props.setProperty("mail.smtp.socketFactory.fallback", "false");
    props.setProperty("mail.smtp.socketFactory.port", "465");

重新编译,部署时将配置文件中的mailPort改为465,即可在阿里云上正常收发邮件	.

原文:https://blog.csdn.net/weixin_42354330/article/details/80684760

一.下载:
Azkaban项目由以下两个工程组成

Azkaban:包括exec和web等工程,如果是单机版,则使用solo工程,源码地址:
官网社区版:https://github.com/azkaban/azkaban
二次开发版:https://github.com/huangyanxiong/DeAzkaban

Azkaban-plugins:包含azkaban支持的各种插件,比如 hadoopMR、hive、spark 等,也可以自定义 plugin,源码地址:
官网社区版:https://github.com/azkaban/azkaban-plugins
二次开发版:https://github.com/huangyanxiong/DeAzkaban-plugins
链接:https://www.jianshu.com/p/1273ad1a83fa

安装 JDK1.8
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装 Git
https://git-scm.com/downloads
安装 gradle

遇到的坑:

  1. 编译时会去下载https://services.gradle.org/distributions/gradle-4.6-all.zip

速度很慢,因此可以自己提前下载好,至于该下载哪个版本,可以在你的azkaban的\azkaban-3.52.0\azkaban-3.52.0\gradle\wrapper目录下查看gradle-wrapper.properties文件。

将下载好的gradle-x.x-all.zip文件放到\azkaban-3.52.0\azkaban-3.52.0\gradle\wrapper目录下,然后修改gradle-wrapper.properties 直接从本地取该zip文件。

  1. 下面这个错误信息,是因为访问不到外网,改为从windows本地编译即可跳过该错误。

Parallel execution with configuration on demand is an incubating feature.

FAILURE: Build failed with an exception.

  • Where:

Build file ‘/opt/azkaban-3.52.0/build.gradle’ line: 31

  • What went wrong:

Plugin [id: ‘com.gradle.build-scan’, version: ‘1.9’] was not found in any of the following sources:

  • Gradle Core Plugins (plugin is not in ‘org.gradle’ namespace)

  • Plugin Repositories (could not resolve plugin artifact ‘com.gradle.build-scan:com.gradle.build-scan.gradle.plugin:1.9’)

    Searched in the following repositories:

    Gradle Central Plugin Repository

  • Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  1. 然后就是最大的坑了,报错信息提示找不到https://plugins.gradle.org/m2/com/cinnober/gradle/semver-git/2.2.3/semver-git-2.2.jar

找了很久发现,在编译配置文件 build.gradle 里的maven库和jar包,现在已经没有了。

这个时候就搞笑了,我手动的在地址后面输入2.2.3,然后自动跳到了另一个网址:

然后我就将build.gradle里的maven库修改为上图的网址,问题就解决了,所以之后如果也遇到类似的问题,这个guide不一定适用,因为官方提供的maven库不一定包含它所要求的jar包。

  1. 报错提示 git 命令找不到, 去下载windows版git,傻瓜式安装。

https://git-scm.com/download/win

  1. 报错提示没有权限访问.bin文件。 使用管理员权限打开命令行。

原文:https://blog.csdn.net/wsdc0521/article/details/82856611

猜你喜欢

转载自blog.csdn.net/weixin_43378045/article/details/84314059