Centos 7 下安装azkaban 3.23.0多executor

1 azkaban介绍

Azkaban是一个开源的工作流程调度系统,专为在Hadoop生态系统中批量工作和作业管理而设计。由LinkedIn开发并贡献给开源社区,Azkaban解决了在大数据处理中对作业流程管理和协调的需求。它的主要目标是以简单且高效的方式提供时间和依赖性管理。

Azkaban作为一个专注于批量数据处理和工作流管理的系统,其简单性、灵活性和可靠性使其在大数据领域广受欢迎。它解决了大规模数据处理工作流程管理的复杂性,使得任务调度和依赖管理变得更加高效。随着大数据技术的不断发展,Azkaban将继续发挥其在数据处理和工作流管理中的重要作用。

1.1 核心特性

  • 工作流管理: Azkaban允许用户定义工作流(workflows),每个工作流由多个作业(jobs)组成,这些作业可以配置为遵循特定的执行顺序。

  • 依赖性调度: 支持基于依赖关系的作业调度。只有当一个作业的所有依赖项都完成时,该作业才会启动。

  • 易于使用的Web界面: 提供了一个用户友好的Web界面,用于创建、运行和监控工作流。

  • 项目管理: Azkaban允许用户将作业和工作流组织成项目(projects),并对项目进行管理。

  • 插件式架构: 支持插件式架构,允许扩展和定制功能。

  • 认证和授权: 提供了基本的安全特性,包括用户认证和基于角色的访问控制。

  • 执行历史和日志: 记录工作流和作业的执行历史,包括日志文件,方便故障排查和性能分析。

1.2 架构和组件

  • Azkaban Web服务器: 作为系统的前端,处理用户界面和API请求,同时也是工作流程管理的中心。

  • Azkaban执行器服务器: 负责执行工作流中的作业。在大型部署中,可以有多个执行器实例。

  • 数据库: 用于存储项目配置、用户数据、工作流定义和历史记录。

  • Azkaban项目: 是工作流和作业的集合,可以包含配置文件和资源文件。

1.3 使用Azkaban

  • 定义工作流: 用户可以使用简单的JSON或YAML文件定义工作流和作业配置。

  • 上传和管理项目: 通过Web界面上传项目文件,管理工作流和作业。

  • 调度和运行工作流: 设置工作流的调度计划或手动触发工作流的执行。

  • 监控和日志查看: 使用Web界面监控正在运行和历史的工作流,查看作业的日志。

1.4 性能优化

  • 水平扩展: 可以通过增加更多的执行器服务器来水平扩展Azkaban,提高处理能力。

  • 资源管理: 对作业的资源使用进行优化,如调整内存和CPU使用。

  • 失败和重试策略: 配置作业失败后的重试策略,提高系统的健壮性。

1.5 安全性和管理

  • 用户认证: 支持用户登录认证,保护工作流和数据的安全。

  • 基于角色的访问控制: 提供角色基于的访问控制,不同角色的用户有不同的操作权限。

  • SSL/TLS支持: 支持通过SSL/TLS加密Web界面和API通信。

1.6 社区和生态系统

  • 开源社区: Azkaban拥有一个活跃的开源社区,不断提供新的特性和改进。

  • 与Hadoop生态系统集成: 设计用于Hadoop生态系统,与Hadoop、Hive、Pig、Spark等工具和平台集成。

  • 插件和扩展: 社区提供了多种插件和扩展,增强了Azkaban的功能。

2 azkaban安装

2.1 下载源码

地址:https://github.com/azkaban/azkaban

2.2 通过IDEA编译源码

编译源码

2.3 创建数据库

   (1)在10.211.55.6服务器上创建数据库azkaban

mysql> CREATE DATABASE azkaban;

   (2)授权用户访问

mysql> CREATE USER 'root'@'%' IDENTIFIED BY '123456';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'root'@'%' WITH GRANT OPTION;

,并重启mysql

vi /etc/my.cnf
max_allowed_packet=1024M

    (4)执行sql文件创建数据库表

           sql路径:azkaban-3.23.0/azkaban-db/build/sql/create-all-sql-0.1.0-SNAPSHOT.sql

2.4 安装azkaban-web-server

   (1)将azkaban-3.23.0/azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz解压缩,并拷贝到安装服务器

   (2)解压缩后只有三个目录:bin,lib,web

   (3)手动增加以下几个目录:conf,extlib,plugins,azkaban,logs

   (4)将azkaban-3.23.0/azkaban-solo-server/build/resources/main/conf下的三个文件拷贝到刚创建conf目录中

            将azkaban-3.23.0/azkaban-solo-server/build/resources/main/log4j.properties文件拷贝到刚创建的conf目录中

            将azkaban-3.23.0/azkaban-web-server/src/main/resources/azkaban/下的所有文件拷贝到azkaban目录中,目录结构保持原样不变

   (5)生成证书

           由于azkaban需要https连接,需要生成证书,在工程目录(bin的上级目录)命令执行

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

           密码设置为:123456

   (6)配置conf目录下azkaban.properties

           

            #Azkaban Personalization Settings

            azkaban.name=Test                                                                

            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


            # mysql

            database.type=mysql                                  

            mysql.port=3306

            mysql.host=10.211.55.6

            mysql.database=azkaban                                                                                                    

            mysql.user=root

            mysql.password=123456

            mysql.numconnections=100


            # Velocity dev mode

            velocity.dev.mode=false

          

            # jetty和证书

            jetty.maxThreads=25

            jetty.ssl.port=8443

            jetty.port=8081

            jetty.keystore=keystore                                                                                                                    

            jetty.password=123456

            jetty.keypassword=123456

            jetty.truststore=keystore

            jetty.trustpassword=123456


            # 多执行器配置

           azkaban.use.multiple.executors=true

           azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus

           azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1

2.5 安装executor

   (1)将azkaban-3.23.0/azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz解压,并拷贝到安装服务器

   (2)解压后只有两个目录:bin, lib

   (3)手动增加以下目录:extlib, plugins/jobtypes, conf

   (4)将azkaban-3.23.0/azkaban-solo-server/build/resources/main/conf下的三个文件拷贝到刚创建conf目录中

            将azkaban-3.23.0/azkaban-solo-server/build/resources/main/log4j.properties文件拷贝到刚创建的conf目录中

            将azkaban-3.23.0/azkaban-solo-server/src/main/resources/commonprivate.properties文件考本到刚创建的plugins/jobtypes目录中

    (5)配置conf目录下的azkaban.properties文件


            

             #Azkaban 时区

             default.timezone.id=Asia/Shanghai  


             # 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=10.211.55.6

             mysql.database=azkaban

             mysql.user=root

             mysql.password=123456

             mysql.numconnections=100


             # Azkaban Executor settings

             executor.maxThreads=50

             # 默认端口

             executor.port=12321

             executor.flow.threads=30

    (6)修改commonprivate.properties文件,

            # 默认是true,表示特定用户执行任务

            execute.as.user=false

2.6 数据库中插入executor节点

    insert into executors(host,port,active) values(“10.211.55.6",12321,1);

    insert into executors(host,port,active) values(“10.211.55.7",12321,1);

    insert into executors(host,port,active) values(“10.211.55.8",12321,1);

2.7 启动azkaban

(先执行executor,再执行web,否则web工程会因为找不到执行器启动失败)

  (1)首先启动executor

            进入azkaban-3.23.0/azkaban-exec-server

            sh bin/start-exec.sh

            查看logs下的日志文件是否有错误,无错误则启动成功

  (2)首先启动web

            进入azkaban-3.23.0/azkaban-web-server

            sh bin/start-exec.sh

            查看logs下的日志文件是否有错误,无错误则启动成功

  (3)通过:https://10.211.55.6:8443访问azkaban

           

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧医疗探索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值