azkaban安装部署

原文地址:https://www.cnblogs.com/heml/p/6552818.html#_label2?tdsourcetag=s_pctim_aiomsg

目录

回到顶部

Azkaban

MySQL
Azkaban使用mysql存储很多状态,AzkabanWebServer和AzkabanExecutorServer都会使用mysql数据库


AzkabanWebServer使用mysql主要有一下用途:

1、Project Management - 管理项目和项目上传文件
2、Executing Flow State - 跟踪执行流程和运行他们的Executor 
3、Previous Flow/Jobs:搜索之前的job执行以及访问他们的日志
4、Scheduler - 保存调度任务的状态
5、SLA(服务等级协议) - 保存sla规则

AzkabanExecutorServer使用mysql主要有一下用途:
1、Access the project - 从数据库中查找项目文件
2、Executing Flows/Jobs - 查找和更新正在执行的流的数据 
3、Logs - 记录job和flow输出的日志 
4、dependency(交流) - 如果一个flow运行在不同的executor,那么他会把状态存储在数据库中

AzkabanWebServer是azkaban中最主要的管理者,他主要处理项目管理、认证、调度、监控执行器,它提供了一个web UI界面

回到顶部

源码下载编译

下载源码

1、如果是下面那么下载,则下载的需要jdk1.8或者更高,此处不使用这种下载方式
git clone https://github.com/azkaban/azkaban.git

2、下载指定版本的azkaban
git clone --branch 3.0.0 https://github.com/azkaban/azkaban.git

下载完成后会有如下警告:

warning: Remote branch 3.0.0 not found in upstream origin, using HEAD instead

解决方法:

进入到下载目录,执行:git checkout 3.0.0

安装gradle,配置好环境变量

gradle 编译防止网络下载gradle包

第一种方式使用gradlew编译:修改下图中红色的部分为本地已经下载好的gradle安装包路径

第二种方式使用gradle编译:配置好gradle环境变量即可,使用gradle命令编译

安装git

1

yum -y install git

编译源码

此处修改gradle-wrapper.properties中distributionUrl为本地gradle

1

./gradlew distTar

编译中遇见的问题:

1、编译警告影响编译失败
warning: [EqualsHashCode] Classes that override equals should also override hashCode.
public boolean equals(Object obj)
^
(see http://errorprone.info/bugpattern/EqualsHashCode)

解决方法编辑build.gradle添加如下内容:

1

2

3

4

5

6

7

8

9

10

11

allprojects {

  repositories {

    mavenCentral()

    mavenLocal()

  }

  gradle.projectsEvaluated {

        tasks.withType(JavaCompile) {

            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"

        }

    }

}

2、编译错误:

What went wrong:
Execution failed for task ':azkaban-common:compileMainExecutableMainC'.
> Could not find C compiler 'gcc' in system path.

解决方法:

1

sudo yum install gcc

3、编译错误:
Could not find Linker 'g++' in system path

解决方法:

1

2

sudo yum install g++

sudo yum install -y gcc-c++*

回到顶部

安装

编译成功后,拷贝azkaban-sql-3.0.0.tar.gz、azkaban-exec-server-3.0.0.tar.gz、azkaban-web-server-3.0.0.tar.gz到/home/hadoop/apps/azkaban目录下

azkaban web服务器安装

1、解压 tar -zxvf azkaban-web-server-3.0.0.tar.gz 
2、重命名 mv azkaban-web-server-3.0.0 server

azkaban executor服务器安装

1、解压 tar -zxvf azkaban-exec-server-3.0.0.tar.gz 
2、重命名 mv azkaban-exec-server-3.0.0 executor

创建SSL配置

命令:keytool -keystore keystore -alias jetty -genkey -keyalg RSA
执行后会提示填写一些信息

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

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

Enter keystore password: 

Re-enter new password: 

What is your first and last name?

  [Unknown]: 

What is the name of your organizational unit?

  [Unknown]: 

What is the name of your organization?

  [Unknown]: 

What is the name of your City or Locality?

  [Unknown]: 

What is the name of your State or Province?

  [Unknown]: 

What is the two-letter country code for this unit?

  [Unknown]:  CN

Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN correct?

  [no]:  y

 

Enter key password for <jetty>

        (RETURN if same as keystore password):

执行成功后会在当前目录生成keystore证书文件

此时,只需要拷贝证书文件到azkaban web服务器的根目录下即可

修改配置文件

 配置时区

1、使用tzselect 生成时区
2、覆盖系统时区

1

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

修改azkaban web服务器配置文件
1、进入到配置文件所在目录conf中
2、编辑azkaban.properties

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

# Azkaban Personalization Settings

#服务器UI名称,用于服务器上方显示的名字

azkaban.name=Test

#描述

azkaban.label=My Local Azkaban

#UI颜色

azkaban.color=#FF3601

azkaban.default.servlet.path=/index

#默认根web目录

web.resource.dir=web/

#默认时区,已改为亚洲/上海 默认为美国

default.timezone.id=Asia/Shanghai

 

# Azkaban UserManager class

#用户权限管理默认类

user.manager.class=azkaban.user.XmlUserManager

#用户配置文件所在的目录

user.manager.xml.file=conf/azkaban-users.xml

 

# Loader for projects

# global配置文件所在位置

executor.global.properties=conf/global.properties

azkaban.project.dir=projects

 

#数据库类型,目前只支持mysql

database.type=mysql

#端口号

mysql.port=3306

#数据库连接IP

mysql.host=localhost

#数据库实例名

mysql.database=azkaban

#数据库用户名

mysql.user=root

#数据库密码

mysql.password=root

#最大连接数

mysql.numconnections=100

 

# Velocity dev mode

velocity.dev.mode=false

 

# Azkaban Jetty server properties.

#最大线程数

jetty.maxThreads=25

#Jetty SSL端口

jetty.ssl.port=8443

#Jetty端口

jetty.port=8081

#SSL文件名

jetty.keystore=keystore

#SSL文件密码

jetty.password=123456

#Jetty主密码 与 keystore文件相同

jetty.keypassword=123456

#SSL文件名

jetty.truststore=keystore

# SSL文件密码

jetty.trustpassword=123456

jetty.excludeCipherSuites=SSL_RSA_WITH_DES_CBC_SHA,SSL_DHE_RSA_WITH_DES_CBC_SHA,SSL_DHE_DSS_WITH_DES_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA

 

# Azkaban Executor settings

#执行服务器端口

executor.port=12321

 

# mail settings 邮件设置

#发送邮箱

mail.sender=xxx@qq.com

#发送邮箱smtp地址

mail.host=smtp.qq.com

#发送邮件时显示的名称

mail.user=xxx9@qq.com

#发送邮件时的密码

mail.password=*************

#任务失败时发送邮件的地址

job.failure.email=xxx@qq.com

#任务成功时发送邮件的地址

job.success.email=xxx@qq.com

 

lockdown.create.projects=false

#缓存目录

cache.directory=cache

 

# JMX stats

jetty.connector.stats=true

executor.connector.stats=true

修改azkaban executor器配置文件
1、进入到配置文件所在目录conf中
2、编辑azkaban.properties

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

# Azkaban

#时区

default.timezone.id=Asia/Shanghai

 

# Azkaban JobTypes Plugins

#jobtype 插件所在位置

azkaban.jobtype.plugin.dir=plugins/jobtypes

 

# Loader for projects

executor.global.properties=conf/global.properties

azkaban.project.dir=projects

 

#数据库相关配置

database.type=mysql

mysql.port=3306

mysql.host=localhost

mysql.database=azkaban

mysql.user=root

mysql.password=root

mysql.numconnections=100

 

# Azkaban Executor settings

# 执行服务器配置

executor.maxThreads=50

executor.port=12321

executor.flow.threads=30

 

# JMX stats

jetty.connector.stats=true

executor.connector.stats=true

 

# uncomment to enable inmemory stats for azkaban

#executor.metric.reports=true

#executor.metric.milisecinterval.default=60000

用户配置
进入azkaban web服务器conf目录,修改azkaban-users.xml

1

2

3

4

5

6

7

<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>

主要是添加下面一行

1

<user username="admin" password="admin" roles="admin,metrics" />

导入azkaban表结构到mysql中
1、创建数据库azkaban

1

create database azkaban;

2、导入表结构

1

source /home/hadoop/apps/azkaban/azkaban-sql-3.0.0/create-all-sql-3.0.0.sql;

3、执行针对3.0.0升级的sql
update.execution_flows.3.0.sql
update.active_executing_flows.3.0.sql

启动

1、启动web服务器,进入web服务器(不要进入bin目录,直接在bin目录所在那层执行,原因是有些配置文件写的是相对路径),执行如下命令

1

nohup ./bin/azkaban-web-start.sh &

2、启动executor,进入executor,不要进入bin目录(原因和上面一样),执行如下命令

1

nohup ./bin/azkaban-executor-start.sh

浏览器访问web服务器:https://服务器IP地址:8443,需要输入的用户名和密码就是在azkaban-users.xml添加的那个用户名和密码

 

azkaban3.0.0: http://pan.baidu.com/s/1c19b5gk

博客园:http://www.cnblogs.com/heml
个人博客:http://www.hemingliang.site

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值