安装
Azkaban的部署方式有三种:
solo server mode:即独立部署模块,数据库被嵌入H2,web服务器和执行服务器运行在同一个进程中,适用于小规模用例。
two server mode:即两个服务器模式,数据库由主从设置的MySQL实例提供支持,Web服务器和执行服务器运行在不同的进程中,以便升级和维护不影响用户,适用于生成环境。
multiple executor mode: 即多个执行器模式,Web服务器和执行器理想情况下运行在不同的主机上,这种多主机设置为Azkaban带来了强大且可扩展性。
1.1安装依赖
我们选择第二种安装模式,因此需要依赖Mysql,java。
1.2安装java
下载jdk-8u171-linux-x64.tar.gz包,解压到linux or centos安装目录。本文解压到 /opt/java。
修改/etc/profile,添加如下内容:
#javapath
exportJAVA_HOME=/opt/java
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportPATH=$PATH:$JAVA_HOME/bin
执行source /etc/profile.
1.3 安装mysql(该方法centos上安装)
rpm-qa | grep mysql
#查看该操作系统上是否已经安装了 mysql 数据库,有的话,可以通过 rpm -e 命令或者 rpm -e --nodeps 命令来卸载掉
yum install mysql-server mysql mysql-devel # 安装
service mysqld start #启动
chkconfig --list | grep mysqld #查看是否开机启动
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfigmysqld on #设置开机启动
mysqladmin-u root password 'root' #设置 root 登录密码
登录mysql 执行:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITHGRANT OPTION;
FLUSH PRIVILEGES;
授权远程登录对远程开放 3306端口(建议直接把防火墙关了)
vi/etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重启防火墙,使端口配置生效
service iptables restart
1.4 安装azkaban
安装方式可以选择源码编译安装,也可以使用现成安装包。
源码在azkaban.github.com上自己拉相应版本到本地。编译参考:https://cloud.tencent.com/developer/article/1079131(这个编译没问题安装有问题)
这里介绍第二种:需要三个安装包:
安装包将三个文件解压到安装路径:/opt/Azkaban/。重命名为sql,web,executer。
executor目录:
executor目录web目录
web目录sql目录
sql目录在原生编译包中executor和web没有conf,plugins等文件夹。可以手动创建。conf配置文件可以从solo中拷贝。
首先配置executor/conf/ azkaban.properties.如下:
#Azkaban 时区 这里我没有修改 最好修改一下改成本地时区
default.timezone.id=America/Los_Angeles
# Azkaban JobTypes
Plugins 插件位置
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
#azkaban使用的数据库名称
mysql.user=root #登录用户名
mysql.password=root
mysql.numconnections=100
# Azkaban Executorsettings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
配置web/conf/
azkaban.properties.如下:
#AzkabanPersonalization Settings
azkaban.name=Test
azkaban.label=MyLocal Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=America/Los_Angeles#时区 这里没改最好修改
#Azkaban UserManagerclass
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml
#azkaban web登录用户
#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 #Velocity dev mode
velocity.dev.mode=false
# Azkaban Jettyserver properties.
# 如果这里设置false 下面将不用 jetty 密码等 选择 不用配置
#只需 配置 maxThreads 与 port (web 请求端口)
# jetty.use.ssl=false
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
jetty.password=123456
# 这个密码是SSL设置的密码
jetty.keypassword=123456
jetty.truststore=keystore
jetty.trustpassword=123456
# Azkaban Executorsettings
executor.port=12321
# mail settings
azkaban发送邮件配置
mail.sender=xxxx@163.com
mail.host=smtp.163.com
mail.user=xxxx@163.com
mail.password=xxxx
job.failure.email=xxxx@163.com
job.success.email=xxx@163.com
lockdown.create.projects=false
配置web/conf/azkaban-users.xml.(可选择配置):
至此azkaban的配置结束
其他工作 azkaban依赖mysql. 因此导入sql的表。Mysql中建立azkaban数据库。
create database azkaban;
source create-all-sql-2.5.0.sql;
上面如果选择了 SSL验证那么需要在web目录下执行:
keytool -keystore keystore -aliasjetty -genkey -keyalg RSA
运行此命令后,会提示输入当前生成keystor的密码及相应信息,输入的密码请劳记,信息如下:
输入keystore密码:#注意和上面配置的密码一致
再次输入新密码:
您的名字与姓氏是什么?#对于unknown可以 一路回车不写
[Unknown]:
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么
[Unknown]: CN
CN=Unknown, OU=Unknown,
O=Unknown,L=Unknown, ST=Unknown, C=CN 正确吗?
[否]: y
输入的主密码 #也需要和上面配置一致 建立 上面两个密码设置一样
如果和keystore 密码相同,按回车):
再次输入新密码:
完成上述工作后,将在当前目录生成keystore 证书文件,将keystore 考贝到 azkaban web服务器根 目录中.如:cpkeystore azkaban/server
这样后会在web下生产一个keystore文件。当然也可以在别的目录执行该命令。然后把这个 keystore拷贝到web目录下。
centos修改时区,时区的信息存在/usr/share/zoneinfo/下面,本机的时区信息存在/etc/localtime。 例如修改成亚洲的上海。
cp/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
至此所有的配置和相关配置结束。
网友评论