CentOS 7.5安装Azkaban详解

1、软件介绍

Azkaban Web 服务器:azkaban-web-server-2.5.0.tar.gz

Azkaban Excutor 执行服务器:azkaban-executor-server-2.5.0.tar.gz

Azkaban 初始化脚本文件:azkaban-sql-script-2.5.0.tar.gz

2、软件下载

下载地址:http://azkaban.github.io/downloads.html

3、安装说明

将安装文件上传到集群,最好上传到安装 hive、sqoop 的机器上,方便命令的执行。并最好同 一存放在 apps 目录下,用于存放源安装文件.新建 azkaban-2.5.0 目录,用于存放 azkaban 运行程序

[Hadoop@hadoop3 ~]$ cd apps/
[hadoop@hadoop3 apps]$ mkdir azkaban-2.5.0

4、安装步骤

(1)上传安装包并解压缩到指定目录

[hadoop@hadoop3 ~]$ tar -zxvf azkaban-web-server-2.5.0.tar.gz -C apps/azkaban-2.5.0/
[hadoop@hadoop3 ~]$ tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C apps/azkaban-2.5.0/

(2)解压初始化脚本

[hadoop@hadoop3 ~]$
tar -zxvf azkaban-sql-script-2.5.0.tar.gz

[hadoop@hadoop3 ~]$
cd azkaban-2.5.0/

[hadoop@hadoop3 azkaban-2.5.0]$
ll

总用量 88

-rwxr-xr-x 1 hadoop hadoop  129 4月  22 2014 create.active_executing_flows.sql

-rwxr-xr-x 1 hadoop hadoop  216 4月  22 2014 create.active_sla.sql

-rwxr-xr-x 1 hadoop hadoop 4694 4月  22 2014
create-all-sql-2.5.0.sql

-rwxr-xr-x 1 hadoop hadoop  610 4月  22 2014 create.execution_flows.sql

-rwxr-xr-x 1 hadoop hadoop  519 4月  22 2014 create.execution_jobs.sql

-rwxr-xr-x 1 hadoop hadoop  358 4月  22 2014 create.execution_logs.sql

-rwxr-xr-x 1 hadoop hadoop  224 4月  22 2014 create.project_events.sql

-rwxr-xr-x 1 hadoop hadoop  227 4月  22 2014 create.project_files.sql

-rwxr-xr-x 1 hadoop hadoop  280 4月  22 2014 create.project_flows.sql

-rwxr-xr-x 1 hadoop hadoop  285 4月  22 2014 create.project_permissions.sql

-rwxr-xr-x 1 hadoop hadoop  294 4月  22 2014 create.project_properties.sql

-rwxr-xr-x 1 hadoop hadoop  380 4月  22 2014 create.projects.sql

-rwxr-xr-x 1 hadoop hadoop  325 4月  22 2014 create.project_versions.sql

-rwxr-xr-x 1 hadoop hadoop  155 4月  22 2014 create.properties.sql

-rwxr-xr-x 1 hadoop hadoop  498 4月  22 2014 create.schedules.sql

-rwxr-xr-x 1 hadoop hadoop  189 4月  22 2014 create.triggers.sql

-rwxr-xr-x 1 hadoop hadoop  22 4月  22 2014 database.properties

-rwxr-xr-x 1 hadoop hadoop  671 4月  22 2014 update-all-sql-2.1.sql

-rwxr-xr-x 1 hadoop hadoop  156 4月  22 2014 update-all-sql-2.2.sql

-rwxr-xr-x 1 hadoop hadoop  395 4月  22 2014 update.execution_logs.2.1.sql

-rwxr-xr-x 1 hadoop hadoop  59 4月  22 2014 update.project_properties.2.1.sql

[hadoop@hadoop3 azkaban-2.5.0]$

(3)在MySQL中执行脚本create-all-sql-2.5.0.sql(在MySQL所在的服务器上执行)

mysql> create database azkaban;
Query OK, 1 row affected (0.01 sec)

mysql> use azkaban;
Database changed
mysql> source /home/hadoop/azkaban-2.5.0/create-all-sql-2.5.0.sql

(4)创建SSL配置

最好是在 /home/hadoop/apps/azkaban-2.5.0 目录下: 执行命令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA

[hadoop@hadoop3 azkaban-2.5.0]$
keytool -keystore keystore -alias jetty -genkey –
keyalg RSA

输入密钥库口令: 

再次输入新口令:

您的名字与姓氏是什么?

  [Unknown]: 

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

  [Unknown]: 

您的组织名称是什么?

  [Unknown]: 

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

  [Unknown]: 

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

  [Unknown]: 

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

  [Unknown]:  CN

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

  [否]:  是

输入 <jetty> 的密钥口令

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

[hadoop@hadoop3 azkaban-2.5.0]$

完成上述工作后,将在当前目录生成 keystore 证书文件,将 keystore 拷贝到 azkaban web 服务 器根目录中.如:

hadoop@hadoop3 azkaban-2.5.0]$ mv keystore azkaban-web-2.5.0/

(5)修改时区

注:先配置好服务器节点上的时区

1、先生成时区配置文件 Asia/Shanghai,用交互式命令 tzselect 即可

2、拷贝该时区文件,覆盖系统本地时区配置

[hadoop@hadoop3 azkaban-2.5.0]$ sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

(6)修改azkaban web 服务器配置

进入 azkaban web 服务器安装目录 conf 目录 

[hadoop@hadoop3 ~]$ cd apps/azkaban-2.5.0/azkaban-web-2.5.0/conf/

修改 azkaban.properties 文件

[hadoop@hadoop3 conf]$ vi azkaban.properties

内容说明如下:

#Azkaban Personalization Settings

azkaban.name=MyTestAzkaban #服务器 UI 名称,用于服务器上方显示的名字

azkaban.label=My Local Azkaban #描述

azkaban.color=#FF3601 #UI 颜色

azkaban.default.servlet.path=/index

web.resource.dir=/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0/web/ #默认根 web 目录

default.timezone.id=Asia/Shanghai #默认时区,已改为亚洲/上海 默认为美国

#Azkaban UserManager class

user.manager.>

user.manager.xml.file=/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0/conf/azkaban-users.xml #用户配置,具体配置参加下文

#Loader for projects # global 配置文件所在位置

executor.global.properties=/home/hadoop/apps/azkaban-2.5.0/azkaban-executor-2.5.0/conf/global.properties

azkaban.project.dir=projects

database.type=mysql #数据库类型

mysql.port=3306 #端口号

mysql.host=hadoop03 #数据库连接 IP

mysql.database=azkaban #数据库实例名

mysql.user=root #数据库用户名

mysql.password=root #数据库密码

mysql.numconnections=100 #最大连接数

 

# Velocity dev mode

velocity.dev.mode=false # Jetty 服务器属性.

jetty.maxThreads=25 #最大线程数

jetty.ssl.port=8443 #Jetty SSL 端口

jetty.port=8081 #Jetty 端口

jetty.keystore=/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0/keystore #SSL 文件名

jetty.password=hadoop #SSL 文件密码

jetty.keypassword=hadoop #Jetty 主密码 与 keystore 文件相同

jetty.truststore=/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0/keystore #SSL 文件名

jetty.trustpassword=hadoop # SSL 文件密码

 

# 执行服务器属性

executor.port=12321 #执行服务器端口

 

# 邮件设置(可选项)

[email protected] #发送邮箱

mail.host=smtp.163.com #发送邮箱 smtp 地址

mail.user=xxxxxxxx #发送邮件时显示的名称

mail.password=********** #邮箱密码

[email protected] #任务失败时发送邮件的地址

[email protected] #任务成功时发送邮件的地址

lockdown.create.projects=false # cache.directory=cache #缓存目录

修改 azkaban-users.xml配置文件

用户配置 进入 azkaban web 服务器 conf 目录,修改 azkaban-users.xml vi azkaban-users.xml 增加 管理员用户

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

(6)修改azkaban executor服务器配置

进入 azkaban executor 服务器安装目录 conf 目录 

[hadoop@hadoop3 ~]$ cd apps/azkaban-2.5.0/azkaban-executor-2.5.0/conf/

修改azkaban.properties文件

[hadoop@hadoop3 conf]$ vi azkaban.properties 

#Azkaban

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

 

# Azkaban JobTypes 插件配置,插件所在位置

azkaban.jobtype.plugin.dir=/home/hadoop/apps/azkaban-2.5.0/azkaban-executor-2.5.0/plugins/jobtypes

 

#Loader for projects

executor.global.properties=/home/hadoop/apps/azkaban-2.5.0/azkaban-executor-2.5.0/conf/global.properties

azkaban.project.dir=projects

 

#数据库设置

database.type=mysql #数据库类型(目前只支持 mysql)

mysql.port=3306 #数据库端口号

mysql.host=hadoop03 #数据库 IP 地址

mysql.database=azkaban #数据库实例名

mysql.user=root #数据库用户名

mysql.password=root #数据库密码

mysql.numconnections=100 #最大连接数

 

# 执行服务器配置

executor.maxThreads=50 #最大线程数

executor.port=12321 #端口号(如修改,请与 web 服务中一致)

executor.flow.threads=30 #线程数

(7)配置环境变量

[hadoop@hadoop3 ~]$ vi .bashrc 
#Azkban
export AZKABAN_WEB_HOME=/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0
export AZKABAN_EXE_HOME=/home/hadoop/apps/azkaban-2.5.0/azkaban-executor-2.5.0
export PATH=$PATH:$AZKABAN_WEB_HOME/bin:$AZKABAN_EXE_HOME/bin

保存之后使其立即生效

[hadoop@hadoop3 ~]$ source .bashrc 

5、启动

(1)启动 web 服务器

[hadoop@hadoop3 ~]$ azkaban-web-start.sh

后台启动方式

nohup azkaban-web-start.sh 1>/home/hadoop/azwebstd.out 2>/home/hadoop/azweberr.out &

报错信息:

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.apache.derby.jdbc.AutoloadedDriver40
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at java.sql.DriverManager.isDriverAllowed(DriverManager.java:556)
    at java.sql.DriverManager.isDriverAllowed(DriverManager.java:548)
    at java.sql.DriverManager.getDrivers(DriverManager.java:446)
    at org.apache.commons.dbcp.BasicDataSource.<clinit>(BasicDataSource.java:57)
    at azkaban.database.DataSourceUtils.getMySQLDataSource(DataSourceUtils.java:98)
    at azkaban.database.DataSourceUtils.getDataSource(DataSourceUtils.java:76)
    at azkaban.database.AbstractJdbcLoader.<init>(AbstractJdbcLoader.java:63)
    at azkaban.executor.JdbcExecutorLoader.<init>(JdbcExecutorLoader.java:59)
    at azkaban.webapp.AzkabanWebServer.loadExecutorManager(AzkabanWebServer.java:247)
    at azkaban.webapp.AzkabanWebServer.<init>(AzkabanWebServer.java:185)
    at azkaban.webapp.AzkabanWebServer.main(AzkabanWebServer.java:726)

需要将derby-10.11.1.1.jar放到/home/hadoop/apps/azkaban-2.5.0/azkaban-web-2.5.0/lib和/home/hadoop/apps/azkaban-2.5.0/azkaban-executor-2.5.0/lib目录中

[hadoop@hadoop3 ~]$ cp derby-10.11.1.1.jar apps/azkaban-2.5.0/azkaban-web-2.5.0/lib/
[hadoop@hadoop3 ~]$ cp derby-10.11.1.1.jar apps/azkaban-2.5.0/azkaban-executor-2.5.0/lib/

此时在重新启动azkaban仍旧报错

Exception in thread "main" java.lang.IllegalArgumentException: The datetime zone id 'Asia/Shanghai ' is not recognised
    at org.joda.time.DateTimeZone.forID(DateTimeZone.java:223)
    at azkaban.webapp.AzkabanWebServer.<init>(AzkabanWebServer.java:208)
    at azkaban.webapp.AzkabanWebServer.main(AzkabanWebServer.java:726)

排查发现是Azkaban的配置文件azkaban-web-2.5.0/conf/azkaban.properties中的时区配置后面多了一个空格导致

注意:Azkaban的配置文件中不能有空格

去掉空格之后再次启动azkaban,启动成功

(2)启动executor服务器

[hadoop@hadoop3 ~]$ azkaban-executor-start.sh

后台启动方式

nohup azkaban-executor-start.sh 1>/home/hadoop/azexstd.out 2>/home/hadoop/azexerr.out &

6、验证

打开谷歌或是火狐浏览器输入https://IP:8443,此处测试的地址是https://hadoop3:8443,此时可能会出现以下界面,点击高级

点击继续前往hadoop3(不安全)

此时会跳到登录界面,输入在配置文件azkaban-users.xml,中配置的用户名密码admin/admin,点击登录

登录成功

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/206586.html<

(0)
管理的头像管理
上一篇2025-04-08 03:47
下一篇 2025-04-08 03:49

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注