阿里云服务器安装Azkaban邮件配置遇的坑

  • Azkaban发送邮件默认使用的是STMP 25端口,但是阿里云服务器25端口是被禁用的,所以需要将25端口换到465端口 采用smtps协议传输邮件(25端口是非SSl协议传输),方法是修改源码,具体如下:

  • git clone 下载Azkaban源码到服务器:

      [root@boyi_bi azkaban]# git clone https://github.com/azkaban/azkaban.git
    
  • 修改源码:

      进入到修改目录下:
      [root@boyi_bi azkaban]# cd azkaban-common/src/main/java/azkaban/utils
      找到EmailMessage.java文件,并使用vim编译器打开进行修改,在import语句添加一行:
      import java.security.Security;
      在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");
    

重新编译即可,Azkaban编译请参照此篇博客

邮件开启SMTP服务

  • 配置第三方客户端发送邮件,需要开启SMTP服务,生成相应的授权码去代替密码登录,具体操作如下(以QQ邮箱为例):

登录到邮箱客户端,进入到设置-账户-SMTP服务:
阿里云服务器安装Azkaban邮件配置遇的坑_第1张图片
阿里云服务器安装Azkaban邮件配置遇的坑_第2张图片
记录最后生成的授权码,以用授权码登录。

修改Azkaban Web配置文件

  • 修改web 目录下azkaban.properties:

      [root@boyi_bi azkaban-web-server-3.80.0-7-gabf9ced]# vim conf/azkaban.properties
    
  • 如下配置:

      # mail settings
      [email protected]
      mail.host=smtp.qq.com # 腾讯qq邮箱的host是:smtp.qq.com  腾讯企业邮箱host是:smtp.exmail.qq.com  126邮箱的host是:smtp.126.com  163邮箱的host是:smtp.163.com
      [email protected]
      mail.password=你的授权码
      [email protected] #可添加,可不添加
      [email protected] #可添加,可不添加
    

完成后,启动Azkaban web 服务即可:

	./bin/start-web.sh

验证发送不再细说,亲测有效。

你可能感兴趣的:(Hadoop,阿里云,Azkaban)