Azkaban(二):安装及3种模式部署

Azkaban理论篇,戳:

一. 安装前准备

  1. 编译环境
    yum -y install git
    yum -y install gcc-c++

  2. 下载源码&&解压
    wget https://github.com/azkaban/azkaban/archive/3.50.0.tar.gz
    mv 3.50.0.tar.gz azkaban-3.50.0.gz
    tar -zxvf azkaban-3.50.0.tar.gz

  3. 编译
    cd azkaban3.40.0
    ./gradlew build installDist -x test
    说明:Gradle是一个基于Apache Ant和Apache Maven的项目自动化构建工具。-x test跳过测试

  4. 编译生成后的安装包路径

[root@name-27 azkaban-3.50.0]# pwd
/opt/song/azkaban-3.50.0 
#solo-server模式安装包路径
[root@name-27 azkaban-3.50.0]# ls azkaban-solo-server/build/distributions/
azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz  azkaban-solo-server-0.1.0-SNAPSHOT.zip

#two-server模式和multiple-executor模式web-server安装包路径
[root@name-27 azkaban-3.50.0]# ls azkaban-web-server/build/distributions/
azkaban-web-server-0.1.0-SNAPSHOT.tar.gz  azkaban-web-server-0.1.0-SNAPSHOT.zip

#two-server模式和multiple-executor模式exec-server安装包路径
[root@name-27 azkaban-3.50.0]# ls azkaban-exec-server/build/distributions/
azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz  azkaban-exec-server-0.1.0-SNAPSHOT.zip

二. solo-server模式部署

  1. 节点规划
    在这里插入图片描述
  2. 解压
tar -zxvf /opt/song/azkaban-3.50.0/azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C /opt/song/azkaban/solo-server/
  1. 配置
vim/opt/song/azkaban/solo-server/azkaban-solo-server-0.1.0-SNAPSHOT/conf/azkaban.properties
 #修改时区
default.timezone.id=Asia/Shanghai
#注意端口号默认是8081,不要和node1上已被占用端口冲突.否则无法启动,且不报错。
jetty.port=8087
  1. 启动
    
 cd /opt/song/azkaban/solo-server/azkaban-solo-server-0.1.0-SNAPSHOT/  
bin/azkaban-solo-start.sh
 注意:启动或者关闭必须要进入到安装目录下进行
  1. 验证是否启动成功
    Jps---->可以看到AzkabanSingleServer进程 (solo-server模式,exec server和webserver在同一个进程中)
    ----> 访问http://node1:8087
    在这里插入图片描述
    说明:默认的用户名和密码都是Azkaban,可以在azkaban-users.xml中修改。在这里插入图片描述
  2. 关闭
sh /opt/song/azkaban/solo-server/azkaban-solo-server-0.1.0-SNAPSHOT/bin/start-solo.sh

2点强调:

  • 启动和停止Azkaban时一定要到安装Azkaban的bin目录下执行命令,否则找不到会报错
  • 在使用的时候上传job文件,若是单个job文件压缩上传,不要放到一个文件夹里面再压缩,需要直接压缩,否则azkaban会找不到对应的job。若是多个job文件,也不要将所有的job文件放到文件夹下面压缩,而是直接压缩多个job文件

web-server模式部署

  1. 节点规划
    在这里插入图片描述

  2. 解压web-server和executor-Server

#web-server
[root@node1 ~]# tar -zxvf /opt/song/azkaban/azkaban-3.50.0/azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C 解压到目标文件夹
#exec‐server
[root@node1 ~]# tar -zxvf /opt/song/azkaban/azkaban-3.50.0/azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C 解压到目标文件夹
  1. 将Azkaban源码中的create-all-sql脚本拷贝到MySQL所在节点2
scp /opt/song/azkaban/azkaban-3.50.0/azkaban-db/build/install/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql root@node2:dir
  1. 在node2节点的Mysql中操作:创建对应的库、增加权限、创建表
mysql> CREATE DATABASE azkaban_two_server; #创建数据库
mysql> use azkaban_two_server;
mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';#创建用户
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban_two_server.* to 'azkaban'@'%' WITH GRANT OPTION;#给用户授权
mysql> source create-all-sql-0.1.0-SNAPSHOT.sql;#创建表
  1. 生成SSL
keytool -keystore keystore -alias jetty -genkey -keyalg RSA 
运行此命令后,会提示输入当前生成 keystor的密码及相应信息,输入的密码请劳记,信息如下:
输入keystore密码: 
再次输入新密码: 
您的名字与姓氏是什么? 
[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服务器根目录中的bin目录下
.如:cp keystore azkaban/webserver/bin
  1. 修改web-server安装配置文件azkaban.properties。
# Azkaban Personalization Settings
azkaban.name=Test  #服务器UI名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban  #描述
azkaban.color=#FF3601  #UI颜色
azkaban.default.servlet.path=/index
web.resource.dir=web/ #默认根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
executor.global.properties=conf/global.properties   # global配置文件所在位置
azkaban.project.dir=projects
#database.type=h2
#h2.path=./h2
#h2.create.tables=true
database.type=mysql   #数据库类型
mysql.port=3306  #端口号
mysql.host=1XX.XX.XX.27   #数据库连接IP
mysql.database=azkaban_two_server  #数据库实例名
mysql.user=azkaban  #数据库用户名
mysql.password=azkaban   #数据库密码
mysql.numconnections=100  #最大连接数

# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.use.ssl=false
jetty.maxThreads=25   #最大线程数
jetty.port=8087 #Jetty SSL端口
jetty.keystore=keystore  #SSL文件名
jetty.password=123456  #SSL文件密码
jetty.keypassword=123456  #Jetty主密码 与 keystore文件相同
jetty.truststore=keystore  #SSL文件名
jetty.trustpassword=123456  # SSL文件密码 

# Azkaban Executor settings
executor.port=12321
 
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
# Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes

  1. 修改executor安装目录配置文件azkaban.properties
		#Azkaban
		default.timezone.id=Asia/Shanghai

# Azkaban JobTypes 插件配置
azkaban.jobtype.plugin.dir=plugins/jobtypes   #jobtype 插件所在位置
 
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

#数据库设置
database.type=mysql
mysql.port=3306 
mysql.host=1XX.XXX.XXX.27
mysql.database=azkaban_two_server
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

# 执行服务器配置
executor.maxThreads=50 #最大线程数
executor.port=12321#端口号,和webserver配置文件保持一致
executor.flow.threads=30  #线程数
  1. 用户配置
    进入web-server安装目录conf目录下修改azkaban-Server.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>
  1. 启动
    (1)启动web-server:进入web-server的安装目录下执行:bin/azkaban-server-start.sh
    (2)启动executor:进入executor的安装目录下执行:bin/azkaban-executor-start.sh

  2. 使用JPS查看
    (1)有AzkabanExecutorServer、AzkabanWebServer两个进程说明各自都启动成功
    (2)如果未启动成功,在启动目录下会生成log文件,在log文件查找错误原因

  3. 可能会遇到的错误示例:cant find … /log4j…file
    解决方法:
    (1)find azkaban-3.50.0 -name ‘log4j*’
    (2)cp azkaban-3.50.0/azkaban-web-server/src/test/resources/log4j.properties azkaban-web-server-0.1.0-SNAPSHOT/conf/
    (3)再重新启动

四. 分布式multi-executor模式

我没有具体实现这种模式,需要请参考:https://blog.csdn.net/wangpei1949/article/details/79521722

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值