一、部署模式

  • solo-server模式  (使用内置h2存储元数据);
  • two-server模式 (1个webServer,1个execServer在同一服务器上,使用mysql存储元数据);

  • multiple-executor模式   (1个webServer,多个execServer分布在不同服务上,使用mysql存储元数据);

本文选择第三种模式,即一台机器安装webServer服务,多台机器安装execServer.这种模式是使用最广泛的。

二、部署准备

(1)服务器三台

192.168.0.10 --azkaban-web-server
192.168.0.11 --azkaban-exec-server

配置ip对应关系:

znzd001: 192.168.0.10

znzd002: 192.168.0.11

(2)搭建MySQL

默认有一个mysql服务器,首先创建azkaban库,azkaban用户密码,并赋予远程连接。

 mysql> CREATE DATABASE azkaban;
mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';
mysql> CREATE USER 'azkaban'@'localhost' IDENTIFIED BY 'azkaban';
mysql> grant all privileges on azkaban.* to 'azkaban'@'%' identified by 'azkaban';
mysql> grant all privileges on azkaban.* to 'azkaban'@'localhost' identified by 'azkaban';
mysql> flush privileges;

(3)下载最新azkaban源文件(azkaban-3.47.0.tar.gz),上传到192.168.0.10:/opt/下

三、开始部署

(1)解压缩文件azkaban-3.47.0.tar.gz

(2)进入目录执行下面代码编译源文件

./gradlew distTar

(3)将下面4个文件解压缩,文件如下:

/opt/azkaban-3.47.0/azkaban-web-server/build/distributions/azkaban-web-server-3.47.0-SNAPSHOT.tar.gz
/opt/azkaban-3.47.0/azkaban-web-server/build/distributions/azkaban-exec-server-3.47.0-SNAPSHOT.tar.gz
/opt/azkaban-3.47.0/azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
/opt/azkaban-3.47.0/azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz

(4)导入建表语句

mysql -uroot -proot123
> SOURCE /opt/azkaban-3.47./azkaban-db/build/distributions/azkaban-db-0.1.-SNAPSHOT/create-all-sql-0.1.-SNAPSHOT.sql;

(5)构建Azkaban-web-server

Azkaban-web-server目录下分别新建目录:conf、plugins、extlib。

将azkaban-solo-server-0.1.0-SNAPSHOT的conf、plugins两个目录下的文件拷贝到Azkaban-web-server目录下。

mv /opt/azkaban-3.47./azkaban-web-server/build/distributions/azkaban-web-server-0.1.-SNAPSHOT /opt/Azkaban-web-server
cp -r /opt/azkaban-3.47./azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.-SNAPSHOT/conf /opt/Azkaban-web-server/conf
cp -r /opt/azkaban-3.47./azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.-SNAPSHOT/plugins /opt/Azkaban-web-server/plugins

(6)修改 /opt/Azkaban-web-server/conf/azkaban.properties 文件

# Azkaban Personalization Settings
azkaban.name=nyhadoop
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
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
executor.global.properties=conf/global.properties
azkaban.project.dir=projects database.type=mysql
mysql.port=3306
mysql.host=10.46.67.33
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100 # Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.ssl.port=8443
jetty.use.ssl=true
jetty.port=8081
jetty.keystore=keystore
jetty.password=123456
jetty.keypassword=123456
jetty.truststore=keystore
jetty.trustpassword=123456
jetty.maxThreads=25
# Azkaban Executor settings
executor.port=12321
# mail settings
mail.sender=
mail.host=
# User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.
# enduser -> myazkabanhost:443 -> proxy -> localhost:8081
# when this parameters set then these parameters are used to generate email links.
# if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.
# azkaban.webserver.external_hostname=myazkabanhost.com
# azkaban.webserver.external_ssl_port=443
# azkaban.webserver.external_port=8081
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
# Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes
azkaban.use.multiple.executors=true
azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
azkaban.executorselector.comparator.Memory=1
azkaban.executorselector.comparator.LastDispatched=1
azkaban.executorselector.comparator.CpuUsage=1

(7)配置jetty ssl

要记住设置的密码,这里密码统一设置为123456

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]: 直接回车
Is CN=YY, OU=YY, O=YY, L=shanghai, ST=shanghai, C=CN correct?
[no]: y

(8)将生成的keystore文件 移动到/opt/Azkaban-web-server/目录下

(9)构建Azkaban-exec-server(192.168.0.11和192.168.0.12都有)

scp /opt/azkaban-3.47./azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.-SNAPSHOT.tar.gz 192.168.0.11:/opt/
tar -zxvf azkaban-exec-server-0.1.-SNAPSHOT.tar.gz
mv azkaban-exec-server-0.1.-SNAPSHOT Azkaban-exec-server

192.168.0.11和192.168.0.12的opt目录下各上传一份azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz。

(10)Azkaban-exec-server

Azkaban-exec-server目录下分别新建目录:conf、plugins、extlib。

将azkaban-solo-server-0.1.0-SNAPSHOT的conf、plugins两个目录下的文件拷贝到Azkaban-exec-server目录下,参考(5)。

编译conf/azkaban.properties文件

# Azkaban Personalization Settings
default.timezone.id=Asia/Shanghai
# Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects database.type=mysql
mysql.port=
mysql.host=10.46.67.33
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections= # Azkaban Executor settings
executor.maxThreads=
executor.port=
executor.flow.threads=
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
# Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes

(11)分别在/opt/Azkaban-web-server/conf和/opt/Azkaban-exec-server/conf目录下创建log4j.properties文件

log4j.rootLogger=DEBUG,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{}:%L - %m%n

(12)分别修改在/opt/Azkaban-web-server/和/opt/Azkaban-exec-server/目录下plugins/jobtypes/commonprivate.properties文件

azkaban.native.lib=false
execute.as.user=false

四、Azkaban运行

(1)先启动执行器:分别在192.168.0.11和192.168.0.12的 /opt/Azkaban-exec-server目录下执行,启动日志写到了logs目录。

 ./bin/start-exec.sh

(2)再启动azkaban服务器

192.168.1.10下 /opt/Azkaban-web-server目录下执行

./bin/start-web.sh

(3)浏览器地址 https://192.168.1.10:8443查看服务界面,访问密码在azkaban-users.xml 里,可自行配置。

五、激活执行器

将MySQL中azkaban数据库中的executors激活,active若为0,要更新为1,表示激活执行器。

补充:

jetty.use.ssl=true,设置为true,访问链接要加https。

六、执行任务

(1)创建任务脚本

在192.168.1.11(znzd002)的home/mntc目录下创建脚本文件test.sh,内容如下:

#!/bin/bash
echo 'Hello World'

(2)创建azkaban的任务文件test.job,并打包为test.zip。

azkaban集群模式下要指定任务执行器,脚本在那个机器上就配置该机器的azkaban执行器ID, 查表executors,这里znzd002对应的执行器ID是10。

type=command
command=sh /home/dmbigdata/mntc/test.sh
#配置执行器id
useExecutor=10
retries=3
retry.backoff=30000

(3)上传test.zip后,Job内容明细如下:

(4)执行test.job,Run Job

(5)指定用哪个azkaban执行器,要在Flow中设置userExecutor参数,参数值指表executors中的执行器的ID。

(6)Schedule设置任务执行时间,比如每天2点执行一次

(7)查看认为日志

(8)日志明细

日志中打印了内容,任务执行成功!

原文链接:https://www.cnblogs.com/bujunpeng/p/9093124.html

Azkaban集群部署的更多相关文章

  1. Quartz.net持久化与集群部署开发详解

    序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项 ...

  2. Openfire 集群部署和负载均衡方案

    Openfire 集群部署和负载均衡方案 一.   概述 Openfire是在即时通讯中广泛使用的XMPP协议通讯服务器,本方案采用Openfire的Hazelcast插件进行集群部署,采用Hapro ...

  3. 基于Tomcat的Solr3.5集群部署

    基于Tomcat的Solr3.5集群部署 一.准备工作 1.1 保证SOLR库文件版本相同 保证SOLR的lib文件版本,slf4j-log4j12-1.6.1.jar slf4j-jdk14-1.6 ...

  4. jstorm集群部署

    jstorm集群部署下载 Install JStorm Take jstorm-0.9.6.zip as an example unzip jstorm-0.9.6.1.zip vi ~/.bashr ...

  5. CAS 集群部署session共享配置

    背景 前段时间,项目计划搞独立的登录鉴权中心,由于单独开发一套稳定的登录.鉴权代码,工作量大,最终的方案是对开源鉴权中心CAS(Central Authentication Service)作适配修改 ...

  6. Windows下ELK环境搭建(单机多节点集群部署)

    1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...

  7. 理解 OpenStack + Ceph (1):Ceph + OpenStack 集群部署和配置

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

  8. HBase集成Zookeeper集群部署

    大数据集群为了保证故障转移,一般通过zookeeper来整体协调管理,当节点数大于等于6个时推荐使用,接下来描述一下Hbase集群部署在zookeeper上的过程: 安装Hbase之前首先系统应该做通 ...

  9. SolrCloud-5.2.1 集群部署及测试

    一. 说明 Solr5内置了Jetty服务,所以不用安装部署到Tomcat了,网上部署Tomcat的资料太泛滥了. 部署前的准备工作: 1. 将各主机IP配置为静态IP(保证各主机可以正常通信,为避免 ...

随机推荐

  1. cd mkdir mv cp rm 命令目录相关操作

    切换目录: cd 家目录 cd. 当前目录 cd.. 当前上一级目录 cd../../当前目录的上上级目录 cd - 返回前一个目录 --------------------------------- ...

  2. Spark 分布式调试工具

    0. 说明 编写工具类,考察 Spark 分布式程序的执行地点 1. 工具类编写 [ JMX ] Java Management Extend , Java 管理扩展服务. 主要用于运维和监控. [测 ...

  3. 脱壳_00_压缩壳_ASPACK

    写在前面的话: Aspack是最常见的一种压缩壳,具有较好的兼容性.压缩率和稳定性,今天我们就来一起分析一下这个壳: 零.分析压缩壳: 0.在开始动态调试前,用PEID和LoadPE查看一些信息,做到 ...

  4. 解决:Windows 强制升级为8.1之后 Mysql连接不上, VisualSVN Server无服务

    1.mysql 连不上,只要将mysql重新加为windows服务即可.(我的是mysql-5.6.24-winx64 解压版)    方法:mysqld --install mysql --defa ...

  5. tikv性能参数调优

    tiKV 最底层使用的是 RocksDB(tidb3.0版本中将使用tian存储引擎) 做为持久化存储,所以 TiKV 的很多性能相关的参数都是与 RocksDB 相关的.TiKV 使用了两个 Roc ...

  6. EXI6.0的安装(找不到网卡、找不到磁盘)

    给一台华为2488 V5 服务器安装EXI6.0服务 (问过华为售后不支持EXI5.5的安装,建议EXI6.0及以上版本) 根据界面提示信息按“Del”.进入BIOS设置界面 参考博客地址:https ...

  7. Local policy - User rights assignment 对照表

    "SeCreateTokenPrivilege"  --> "Create a token object" "SeAssignPrimaryTo ...

  8. Linux下源码编译安装MySQL 5.5.8

    准备工作: 新建用户和用户组 groupadd mysql useradd -g mysql mysql 1:下载: bison-2.4.2.tar.bz2 cmake-2.8.3.tar.gz ma ...

  9. 阿里八八Alpha阶段Scrum(11/12)

    今日进度 叶文滔: 合并日程界面debug成功,但是目前出现了新的问题,日程界面一些控件无法适配屏幕,正在排查问题 李嘉群: 尝试用okhttp的方式发送请求 王国超: 今天开始进行recycerli ...

  10. vue2.0学习笔记之组件

    [易错点]:  1.   组件内html代码片段超过一个标签时必须套一个根元素,即template模板子元素只能是一个. 2.   组件名称采用横杠间隔命名时,第一个字母大写会报错.   写法一:全局 ...