本文记录azkaban的安装和 一些报错处理(文章末尾)。
AzKaban组成
MySQL数据库,azkaban-server (web端),azkaban-executor (执行job)
1.下载(这里的下载并必行编译,由于下载的时候会下载到其他的库包,几kb/s龟速太慢,所以,建议直接从windows上传已编译好的azkaban3.x包)
执行命令
git clone https://github.com/azkaban/azkaban.git
下载完成后可以看到生成了一个名为 azkaban 的文件夹
2.编译(若是上传的编译好的,就不用此步骤了)
cd 到 azkaban 目录下,执行如下命令生成一系列文件,xxx.tar.gz
./gradlew distTar
此时,编译完成,里面就有需要用到的Azkaban安装部署的executor和web-server
3.拷贝
开始安装部署,在azkaban同级目录,新建一个目录 azkaban3 用于安装,并拷贝相关文件进去
mkdir azkaban3 cp azkaban/azkaban-db/build/distributions/azkaban-db-3.53.0.tar.gz azkaban3 cp azkaban/azkaban-web-server/build/distributions/azkaban-web-server-3.53.0.tar.gz azkaban3 cp azkaban/azkaban-exec-server/build/distributions/azkaban-exec-server-3.53.0.tar.gz azkaban3
4.解压和重命名
tar -zxvf azkaban-db-3.53.0.tar.gz tar -zxvf azkaban-web-server-3.53.0.tar.gz tar -zxvf azkaban-exec-server-3.53.0.tar.gz mv azkaban-db-3.53.0 azkaban-db mv azkaban-web-server-3.53.0 server mv azkaban-exec-server-3.53.0 executor
azkaban脚本导入,azkaban-db里的sql脚本,导入到mysql中:(或者配置外网mysql连接)
进入mysql
mysql> create database azkaban;
mysql> use azkaban;
Database changed
mysql> source /home/hadoop/azkaban3/create-all-sql-3.53.0.sql;
5.创建SSL配置(123456)
$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA
运行此命令后,会提示输入当前生成 keystor的密码及相应信息,输入的密码请劳记,信息如下(默认enter不输入,国家必填)
输入keystore密码:(123456) 再次输入新密码:(123456) 您的名字与姓氏是什么? [Unknown]: 您的组织单位名称是什么? [Unknown]: 您的组织名称是什么? [Unknown]: 您所在的城市或区域名称是什么? [Unknown]: 您所在的州或省份名称是什么? [Unknown]: 该单位的两字母国家代码是什么 [Unknown]: CN CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正确吗? [否]: y 输入<jetty>的主密码 (如果和 keystore 密码相同,按回车): 再次输入新密码:
然后
完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 考贝到 azkaban web服务器根目录中.
$ cp keystore azkaban3/server
配置文件
注:先配置好服务器节点上的时区
1、先生成时区配置文件Asia/Shanghai,用交互式命令 tzselect 即可
2、拷贝该时区文件,覆盖系统本地时区配置
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
6.azkaban web服务器配置
进入azkaban web服务器安装目录 conf目录,修改azkaban.properties文件,可用下面内容完全覆盖properties内容,顶多屏蔽个邮箱
vi azkaban.properties
azkaban.name=Test azkaban.label=My Local Azkaban #azkaban.color=#FF3601 azkaban.default.servlet.path=/index web.resource.dir=/usr/software/azkaban3/server/web/ default.timezone.id=Asia/Shanghai #Azkaban UserManager class user.manager.class=azkaban.user.XmlUserManager user.manager.xml.file=/usr/software/azkaban3/server/conf/azkaban-users.xml #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=admin mysql.numconnections=300 velocity.dev.mode=false jetty.maxThreads=25 jetty.ssl.port=8443 jetty.port=8081 jetty.keystore=/usr/software/azkaban3/server/keystore jetty.password=123456 jetty.keypassword=123456 jetty.truststore=/usr/software/azkaban3/server/keystore jetty.trustpassword=123456 executor.port=12321
# 邮件设置,邮件还是要的
mail.sender=xxxxxxxx@163.com
mail.host=smtp.163.com
mail.user=xxxxxxxx
mail.password=**********
job.failure.email=xxxxxxxx@163.com
job.success.email=xxxxxxxx@163.com
lockdown.create.projects=false
cache.directory=cache
7.azkaban 执行服务器配置
default.timezone.id=Asia/Shanghai azkaban.jobtype.plugin.dir=plugins/jobtypes 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=admin mysql.numconnections=300 # 执行服务器配置 executor.maxThreads=50 executor.port=12321 executor.flow.threads=30
8.用户配置
进入azkaban web服务器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>
azkaban默认需要3G的内存,剩余内存不足则会报异常。
配置文件,设置
vi 【executor】/plugins/jobtypes/commonprivate.properties
memCheck.enabled=false
启动 web服务器
在azkaban web服务器目录下执行启动命令
./bin/start-web.sh
启动 执行服务器
如果没启动起来,可以加一条数据,再启动
insert into executors(id,host,port,active) values('1','localhost','12321','1')
在执行服务器目录下执行启动命令
./bin/start-exec.sh
启动完成后,在浏览器(建议使用谷歌浏览器)中输入https://服务器IP地址:8443 ,即可访问azkaban服务了.在登录中输入刚才新的户用名及密码,点击 login
访问azkaban,使用https协议
https://localhost:8443
登录密码:azkaban/azkaban ,或者admin/admin
可能遇到的坑和处理:
user.manager.xml.file=azkaban-users.xml(错误)
user.manager.xml.file=/usr/software/azkaban3/server/conf/azkaban-users.xml(正确)
2.azkaban.propertise文件中,如果配置远程数据库连接,密码不要包含感叹号
如 mysql.password=abcd!@123(错误)
这样,感叹号会被当成关键字,影响数据库的连接,mysql -hxxx.xxx.xxx.xxx -uroot -p'abcd!@123'这样虽然能连接,但是
配置文件里,即使加上引号还是连不上的 mysql.password='abcd!@123'(无效),所以密码不要包含!,可以包含一些%v@之类的。
3.小概率情况可能遇到,就是properties的key对应value不要有附加空格,不然会算到值里
如(本处分号只是表示字符串结束位置)
default.timezone.id=Asia/Shanghai ; //错误
default.timezone.id=Asia/Shanghai; //正确
4.端口占用
有些环境下8443默认已占用,说
"Address already in use",就需要换个端口,如: 8444,而且网页端口协议是https不是http.
一些配置的注释,可以参照如下:
https://blog.csdn.net/weixin_35852328/article/details/79327996