azkaban部署文档

azkaban部署文档

1.下载

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

2.编译

Build Azkaban

./gradlew build

Clean the build

./gradlew clean

Build and install distributions

./gradlew installDist

note:编译环境需要java8及以上以及gcc和gc++

3.拷贝

另新建目录 azkaban3.2 执行

cp azkaban/azkaban-solo-server/build/distributions/azkaban-solo-server-3.20.0-5-g28fc94e7.tar.gz azkaban-3.2

cp azkaban/azkaban-exec-server/build/distributions/azkaban-exec-server-3.20.0-5-g28fc94e7.tar.gz azkaban-3.2

cp azkaban/azkaban-web-server/build/distributions/azkaban-web-server-3.20.0-5-g28fc94e7.tar.gz azkaban-3.2

cp azkaban/azkaban-sql/build/distributions/azkaban-sql-3.20.0-5-g28fc94e7.tar.gz azkaban-3.2

cd azkaban-3.2

tar -zvxf azkaban-exec-server-3.20.0-5-g28fc94e7.tar.gz

tar -zvxf azkaban-web-server-3.20.0-5-g28fc94e7.tar.gz

tar -zvxf azkaban-sql-3.20.0-5-g28fc94e7.tar.gz

tar -zxvf azkaban-exec-server-3.20.0-5-g28fc94e7.tar.gz

4.创建azkaban元数据库

1)以root用户登录mysql

2) CREATE DATABASE azkaban;

3 CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';

4) GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;

5) flush privileges;

6) use azkaban;

7) source /home/spark_test/azkaban3.2/azkaban-sql-3.20.0-5-g28fc94e7/create-all-sql-3.2.0.sql

5.创建SSL配置,生成keystore文件

在azkaban-web-server-3.20.0-5-g28fc94e7目录下执行命令:

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

根据提示执行:

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

Enter keystore password: 123456    #用户自定义
Re-enter new password: 123456
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):123456

执行完命令后会在azkaban-web-server-3.20.0-5-g28fc94e7目录下生成keystore文件

6.配置azkaban-web-server

执行mv azkaban-web-server-3.20.0-5-g28fc94e7 web

将azkaban-solo-server-3.20.0-5-g28fc94e7下的plugin目录和conf目录拷贝到web目录下

修改conf下的azkaban.properties

#服务器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=azkaban
#数据库密码
mysql.password=azkaban
#最大连接数
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=8088
#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=
#发送邮箱smtp地址
mail.host=
#发送邮件时显示的名称
mail.user=
#发送邮件时的密码
mail.password=
#任务失败时发送邮件的地址
job.failure.email=
#任务成功时发送邮件的地址
job.success.email=

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

# JMX stats
jetty.connector.stats=true
executor.connector.stats=true

7.配置用户

azkaban使用jetty创建服务端,通过配置$AZKABAN_WEB_HOME/conf/azkaban-users.xml文件来配置用户,在官网的说明如下http://azkaban.github.io/azkaban/docs/latest/#user-manager 。采用用户——角色——权限三个维度控制权限。其中用户可以创建用户组,给用户组制定权限,这样在该用户组下的所有用户自动拥有该权限。

azkaban提供的权限有如下几种,用户可以自行组合配置

ADMIN Grants all access to everything in Azkaban
READ Gives users read only access to every project and their logs
WRITE Allows users to upload files, change job properties or remove any project
EXECUTE Allows users to trigger the execution of any flow
SCHEDULE Users can add or remove schedules for any flows
CREATEPROJECTS Allows users to create new projects if project creation is locked down

注意这里的CREATEPROJECTS权限,说明是”如果project creation 是 locked down,就允许用户创建新的project”。

这个locked down配置是在$AZKABAN_WEB_HOME/conf/azkaban.properties文件中

lockdown.create.projects=true

在web-server的conf目录下修改azkaban-users.xml

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

8.配置azkaban-executors

mv azkaban-exec-server-3.20.0-5-g28fc94e7 executor

将azkaban-exec-server-3.20.0-5-g28fc94e7下的plugin目录和conf目录拷贝到executor目录下

修改conf目录下的azkaban.properties

default.timezone.id=Asia/Shanghai
# Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
# Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes


database.type=mysql
mysql.port=3306
mysql.host=local
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100


# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30

9.添加log4j.properties

分别在web-server的conf目录和execotor的conf目录下加入文件log4j.properties

log4j.rootLogger=INFO,C

log4j.appender.C=org.apache.log4j.ConsoleAppender

log4j.appender.C.Target=System.err

log4j.appender.C.layout=org.apache.log4j.PatternLayout

log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

10.分布式配置

如果需要部署分布式azkaban,只需要在其他节点布置execotor即可,配置和上面executor配置大致相同。

11.启动

启动时需要先启动execotor再启动webserver,如果新加入了execotor,则需要重新启动execotor

进入execotor 目录执行

./bin/start-exec.sh (必须是此路径下启动)

进入web-server 目录执行

./bin/start-web.sh (必须是此路径下启动)

然后登陆 https://localhost:8443/

用户名:azkaban

密 码:azkaban

猜你喜欢

转载自blog.csdn.net/qq_28549905/article/details/80049615