zoukankan      html  css  js  c++  java
  • 03-azkaban安装部署

    00-前言

    初步撰写了azkaban  Multi Executor Server 模式的部署说明,只是在单一节点上同时部署了web以及excutor。多excutor的情况可能会稍有不一样,待完善

    01-环境介绍

    1.基础环境介绍

    CentOS7

    azkaban 3.81.0

    jdk 8

    注意:需要提前在集群所有节点配置好NTP服务

    可以单独创建一个linux用户azkaban专门用来安装azkaban

    2.安装模式

    Multi Executor Server

    02-配置元数据库

    1.在MySQL中创建数据库

    1 mysql> CREATE DATABASE azkaban;

    2.创建azkaban用户并赋权

    1 # Example database creation command. The user name doesn't need to be 'azkaban'
    2 mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';
    3 # give the user INSERT, SELECT, UPDATE, DELETE permission on all tables in the Azkaban db.
    4 mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to '<username>'@'%' WITH GRANT OPTION;

    3.执行建表语句

    注意:脚本在azkaban-db-0.1.0-SNAPSHOT.tar.gz 中

    1 mysql > source create-all-sql-0.1.0-SNAPSHOT.sql

    4.修改MySQL配置

    1 [mysqld]
    2 ...
    3 max_allowed_packet=1024M

    03-安装并配置Azkaban Web Server

    1.解压tar包

    2.配置SSL【如果需要限定使用HTTPS访问,则配置】

    azkaban web可以使用HTTPS,也可以使用HTTP的方式访问

    1)说明

    Keytool是java数据证书的管理工具,使用户能够管理自己的公/私钥对以及相关证书。系统一般自带,没有使用yum通过系统光盘安装即可

    -keystore 指定密钥库的名称以及位置(产生的各类信息将存在keystore文件中)

    -genkey(或者genkeypair) 生成密钥对

    -alias 为生成的密钥指定别名,如果没有默认是mykey

    -keyalg 指定密钥算法 RSA/DSA 默认是DSA

    2)生成密钥对和证书

    在web server所在的节点执行如下命令,生成密钥对和证书

    1 keytool -genkey -keystore /opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/keystore -alias jetty  -keyalg RSA 

    设置密码,以及输入一些没什么用的公司名称等信息

    会在指定的目录下生成keystore

     

     可以通过如下命令查看keystore中的信息

    1 keytool -list -keystore /opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/keystore

    3.修改配置文件

    1)配置azkaban.properties

     1 # Azkaban Personalization Settings
     2 azkaban.name=Test
     3 azkaban.label=My Local Azkaban
     4 azkaban.color=#FF3601
     5 azkaban.default.servlet.path=/index
     6 #需要修改为绝对路径,该目录是存储web的所有内容
     7 #这里最好是配置系统环境变量,然后使用环境变量来配置相关路径
     8 #web.resource.dir=web/
     9 web.resource.dir=/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/web
    10 #需要修改时区,默认是美国,需要改成亚洲/上海
    11 #default.timezone.id=America/Los_Angeles
    12 default.timezone.id=Asia/Shanghai
    13 
    14 # Azkaban UserManager class
    15 #这个是不安全的用户管理类,生产环境需要使用其他第三方的用户管理类
    16 user.manager.class=azkaban.user.XmlUserManager
    17 #改为绝对路径
    18 user.manager.xml.file=/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/conf/azkaban-users.xml
    19 
    20 # Loader for projects
    21 #改为绝对路径
    22 executor.global.properties=/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/conf/global.properties
    23 azkaban.project.dir=projects
    24 
    25 # Velocity dev mode
    26 velocity.dev.mode=false
    27 
    28 # Azkaban Jetty server properties.
    29 #我这里即配置了HTTP连接的以及HTTPS连接的参数,通过jetty.use.ssl设置是否使用HTTPS访问当时。可以不启用。
    30 jetty.use.ssl=false
    31 jetty.maxThreads=25
    32 jetty.port=8081
    33 jetty.keystore=/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/keystore
    34 #keystore库的密码
    35 jetty.password=azkaban
    36 #密钥对的密码
    37 jetty.keypassword=azkaban
    38 #这个是用来服务器判断客户端是否可以被信任
    39 #暂时配置成服务器的keystore也可以
    40 jetty.truststore=/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/keystore
    41 jetty.trustpassword=azkaban
    42 jetty.ssl.port=8443
    43 
    44 # Azkaban Executor settings
    45 # mail settings
    46 #关于邮件提醒的一些配置
    47 mail.sender=
    48 mail.host=
    49 # 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.
    50 # enduser -> myazkabanhost:443 -> proxy -> localhost:8081
    51 # when this parameters set then these parameters are used to generate email links.
    52 # if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.
    53 # azkaban.webserver.external_hostname=myazkabanhost.com
    54 # azkaban.webserver.external_ssl_port=443
    55 # azkaban.webserver.external_port=8081
    56 #关于邮件提醒的一些配置
    57 job.failure.email=
    58 job.success.email=
    59 lockdown.create.projects=false
    60 cache.directory=cache
    61 # JMX stats
    62 jetty.connector.stats=true
    63 executor.connector.stats=true
    64 # Azkaban mysql settings by default. Users should configure their own username and password.
    65 
    66 #修改数据库信息
    67 database.type=mysql
    68 mysql.port=3306
    69 mysql.host=132.35.231.131
    70 mysql.database=azkaban
    71 mysql.user=azkaban
    72 mysql.password=azkaban
    73 mysql.numconnections=100
    74 
    75 #Multiple Executor
    76 azkaban.use.multiple.executors=true
    77 azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
    78 azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
    79 azkaban.executorselector.comparator.Memory=1
    80 azkaban.executorselector.comparator.LastDispatched=1
    81 azkaban.executorselector.comparator.CpuUsage=1

    2)配置azkaban-users.xml

     配置用户及权限

    1 <azkaban-users>
    2   <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
    3   <user password="metrics" roles="metrics" username="metrics"/>
    4 
    5   <role name="admin" permissions="ADMIN"/>
    6   <role name="metrics" permissions="METRICS"/>
    7 </azkaban-users>
    View Code

     这里提供了一个默认的用户azkaban

    04-安装并配置Azkaban Executor Server

    1.解压tar包

    2.修改配置文件

    1)修改azkaban.properties

     1 # Azkaban Personalization Settings
     2 #azkaban.name=Test
     3 #azkaban.label=My Local Azkaban
     4 #azkaban.color=#FF3601
     5 #azkaban.default.servlet.path=/index
     6 #web.resource.dir=web/
     7 #**************修改时区******************
     8 default.timezone.id=Asia/Shanghai
     9 # Azkaban UserManager class
    10 #user.manager.class=azkaban.user.XmlUserManager
    11 #user.manager.xml.file=conf/azkaban-users.xml
    12 
    13 # Loader for projects
    14 #**************修改为绝对路径**************
    15 executor.global.properties=/home/azkaban/opt/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT/conf/global.properties
    16 azkaban.project.dir=projects
    17 
    18 # Velocity dev mode
    19 #velocity.dev.mode=false
    20 # Azkaban Jetty server properties.
    21 #jetty.use.ssl=false
    22 #jetty.maxThreads=25
    23 #jetty.port=8081
    24 
    25 # Where the Azkaban web server is located
    26 #azkaban.webserver.url=http://localhost:8081
    27 # mail settings
    28 #mail.sender=
    29 #mail.host=
    30 # 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.
    31 # enduser -> myazkabanhost:443 -> proxy -> localhost:8081
    32 # when this parameters set then these parameters are used to generate email links.
    33 # if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.
    34 # azkaban.webserver.external_hostname=myazkabanhost.com
    35 # azkaban.webserver.external_ssl_port=443
    36 # azkaban.webserver.external_port=8081
    37 #job.failure.email=
    38 #job.success.email=
    39 #lockdown.create.projects=false
    40 #cache.directory=cache
    41 # JMX stats
    42 #jetty.connector.stats=true
    43 #executor.connector.stats=true
    44 # Azkaban plugin settings
    45 #**************建议也修改为绝对路径**************
    46 azkaban.jobtype.plugin.dir=plugins/jobtypes
    47 # Azkaban mysql settings by default. Users should configure their own username and password.
    48 #**************配置数据库连接**************
    49 database.type=mysql
    50 mysql.port=3306
    51 mysql.host=132.35.231.131
    52 mysql.database=azkaban
    53 mysql.user=azkaban
    54 mysql.password=azkaban
    55 mysql.numconnections=100
    56 # Azkaban Executor settings
    57 #**************配置excutor的一些参数**************
    58 executor.maxThreads=50
    59 executor.flow.threads=30
    60 executor.port=12321

    05-启动web以及excutor

    1.注意

    1)web与excutor是通过元数据库里存储的信息来相互识别的,不需要在配置文件里配置对应的IP

    2)需要先启动excutor并且在元数据库中,将excutor状态设置为活动

     2.启动excutor

    1)一定要在/home/azkaban/opt/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT目录下执行 ./bin/start-exec.sh

    会在当前目录生成启动日志

     2)一定要在/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT 目录下执行 ./bin/start-web.sh

    会在当前目录生成启动日志

    06-可能遇到的问题

    1.启动excutor或者web,启动日志中提示 can' t start up :  not enough memory

    原因:主机环境中Java版本过低

    解决方案:将当前用户的Java替换为1.8或者以上的版本即可

    2.启动web时提示没有活动的executor

    azkaban.executor.ExecutorManagerException: No active executors found

     原因:元数据库中,没有active =1 的executor记录

    解决方案:手动在元数据库中修改executor状态

  • 相关阅读:
    jenkins:通过execute shell启动的进程会被杀死的问题
    Cacti:添加监控磁盘IO
    Linux:添加永久路由
    Linux:下载方式安装lrzsz
    Linux:Vmware安装linux虚拟机,桥接方式配置静态IP后重启网卡,提示:Error,some other host already uses address 10.252.252.21...
    Linux:安装rstatd,报错
    Linux:安装图形界面
    leetcode Median of Two Sorted Arrays
    算法导论 寻找第i小元素 9.2
    算法导论9.1-1
  • 原文地址:https://www.cnblogs.com/zhaoxj127/p/12067350.html
Copyright © 2011-2022 走看看