zoukankan      html  css  js  c++  java
  • azkaban的三种安装部署方式

    一、solo server mode

    该模式中webserver和executorsrever运行在同一进程中,进程名是AzkabanSingleServer,使用自带的H2数据库,这种模式包含Azkaban的所有特性,但一般用来学习和测试

    1.1节点规划

    HOST 角色
    hadoop01 Web Server和Executor Server统一进程

    1.2解压配置(建议把azkaban安装在和hive同一台机子上)

    -- 下载azkaban压缩包
        https://github.com/azkaban/azkaban/archive/3.51.0.tar.gz
        在进行官方下载azkaban时, 由于官方并没有提供其已经编译好的安装包, 故需要我们自己进行编译,并且在编译时候, 需要提前安装好maven, Ant , Node 等软件, 
    
    -- 上传到相对应的位置  建议放在和hive一样的地方 然后解压到对应的位置
        mkdir /export/servers/azkaban
        tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz –C /export/servers/azkaban/
    
    -- 修改时区
        vim conf/azkaban.properties
        default.timezone.id=Asia/Shanghai 
    
    -- azkaban默认需要3G的内存,剩余内存不足则会报异常 如果内存大于3G 不修改也可以
        vim  plugins/jobtypes/commonprivate.properties
        添加:memCheck.enabled=false

    1.3 启动验证 

    注:启动/关闭必须进到azkaban-solo-server-0.1.0-SNAPSHOT/目录下 qita目录下不识别
    cd azkaban-solo-server-0.1.0-SNAPSHOT/
    bin/start-solo.sh

    1.4 登录页面

    访问Web Server=><http://hadoop01:8081/> 默认用户名密码**azkaban**

    1.5 初体验测试

            1)如何创建调度任务

                    i、在window上创建job文件(文件的个数和任务的步骤有关系)

                    ii、文件内容

                             type=command       #command命令

                             dependencies=某个文件的名称   #如果是第一个则不用写,当前的这个任务依赖的那个job

                             command= echo “xxxxxxxxxx”   #所执行的命令

                    iii、将所有的job打包成一个Zip的压缩文件   注意:只能是zip,否则azkaban识别不了

             2)想要执行一个任务

                   I、创建一个任务的项目(一个工作流任务就是一个azkaban的项目)

                   II、上传工作流的任务的压缩包

                   III、检查, 工作流调度步骤图是否和预期的一致

                   IV、可以选择立即执行, 或者定时执行

                             

    二、two-server

    该模式使用MySQL数据库, Web Server和Executor Server运行在不同的进程中

    2.1 节点规划

    HOST juese
    Hadoop01 MySql
    Hadoop01 web‐server和exec‐server不同进程 不同的服务器也可以 按自己的来

    2.2 mysql配置初始化

    -- 查看自己的数据库可不可以连接上去
    --可以在外面直接创建数据库 把需要的表导进去   或者是在linux上面执行  一下的代码是在linux上面执行的
    -- 建立文件夹
    mkdir /export/servers/azkaban
    -- 将压缩包解压到对应的文件夹
    tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz –C /export/servers/azkaban/
    -- Mysql上创建对应的库、增加权限、创建表
    mysql> CREATE DATABASE azkaban_two_server; #创建数据库
    mysql> use azkaban_two_server;
    mysql> source /export/servers/azkaban/azkaban-db-0.1.0-SNAPSHOT/create-all-sql-0.1.0-SNAPSHOT.sql; #加载初始化sql创建表

    2.3 web-server服务器配置(配置细心细心在细心)

    -- 这些编译好的包在我的资源上面有
    mkdir /export/servers/azkaban
    tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz –C /export/servers/azkaban/
    tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz –C /export/servers/azkaban/
    
    
    生成ssl证书:可以不设置, 主要是为了后面使用https方式访问, 提高安全性
    keytool -keystore keystore -alias jetty -genkey -keyalg RSA
    	运行此命令后,会提示输入当前生成keystore的密码及相应信息,输入的密码请记住(所有密码统一以123456输入)。
    	完成上述工作后,将在当前目录生成keystore证书文件,将keystore拷贝到 azkaban web服务器根目录中。 如: cp keystore azkaban-web-server-0.1.0-SNAPSHOT/
    
    配置:  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
    
    # Azkaban Jetty server properties. 开启使用ssl 并且知道端口 -
    jetty.use.ssl=true     
    jetty.ssl.port=8443  
    jetty.maxThreads=25
    
    # Azkaban Executor settings  指定本机Executor的运行端口 -
    executor.host=localhost
    executor.port=12321
    
    #  KeyStore for SSL ssl相关配置  注意密码和证书路径 -
    jetty.keystore=keystore
    jetty.password=123456
    jetty.keypassword=123456
    jetty.truststore=keystore
    jetty.trustpassword=123456
    
    # Azkaban mysql settings by default. Users should configure their own username and password. -
    database.type=mysql
    mysql.port=3306
    mysql.host=node-1
    mysql.database=azkaban_two_server
    mysql.user=root
    mysql.password=hadoop
    mysql.numconnections=100
    
    #Multiple Executor 设置为false  -
    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
    
    
    配置 commonprivate.properties : 此文件不存在需要手动创建在${azkaban-home}/plugins/jobtypes
    
    mkdir -p plugins/jobtypes
    vim commonprivate.properties
    内容如下: 
    azkaban.native.lib=false
    execute.as.user=false
    memCheck.enabled=false

    2.4 exec-server服务器配置

    先将exec-server的压缩包, 进行解压操作, 在exec-server的跟目录下, 执行下面的配置:
    配置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
    
    # Where the Azkaban web server is located -
    azkaban.webserver.url=https://node-2:8443
    
    # Azkaban mysql settings by default. Users should configure their own username and password. -
    database.type=mysql
    mysql.port=3306
    mysql.host=node-1
    mysql.database=azkaban_two_server
    mysql.user=root
    mysql.password=hadoop
    mysql.numconnections=100
    
    # Azkaban Executor settings
    executor.maxThreads=50
    executor.port=12321
    executor.flow.threads=30
    
    
    -- 同样的配置限制内存的条件  内存很大的可以忽略

    2.5 集群启动

    在对应的跟目录下启动服务
    先启动exec-server
    再启动web-server
    启动webServer之后进程失败消失,可通过安装包根目录下对应启动日志进行排查。

    如果看到上述错误, 需要手动激活executor

    cd  /export/servers/azkaban/execserver
    curl -G "node03:$(<./executor.port)/executor?action=activate" && echo
    
    然后重新启动webserver
    

    2.6 注意事项

               注意1: 配置文件在修改的时候, 一定要格外的注意, 不要修改错了, 尤其的空格的问题
               注意2: 在启动exec-server后, 默认情况只是将其启动了, 并没有对其进行激活, 需要进行手动的激活处理
                    curl -G "node03:$(<./executor.port)/executor?action=activate" && echo
                     也可以通过修改executors表中 状态 为 1即可 (暴力修改)
               注意3: 每一次启动web-server 都会检查一遍是否有激活的executors,只会检查一次
               注意4: 每一次启动execserver, 都需要进行重新的激活

    三、multiple-executor mode

    该模式使用MySQL数据库, Web Server和Executor Server运行在不同的机器中。且有多个Executor Server。该模式适用于大规模应用。

    3.1 节点规划

                 

    HOST 角色
    hadoop01 mysql
    hadoop02 web-server、exec-server
    hadoop03 exec-server

    3.2发送executor server到另外一台服务器

    发送后直接启动,之后,需要手动激活executor
    cd  /export/servers/azkaban/execserver
    curl -G "node-3:$(<./executor.port)/executor?action=activate" && echo

    3.3激活

    激活后, 需要将web server重启, 让其重新检测有那个executor, 否则依然无法使用

     

     

  • 相关阅读:
    电子工程师对程序员的一番心里话(转载)
    一个程序员的一生(转载)
    程序人生中的十个感悟...
    谈计算机软件发展观念(转载)
    ASP.NET 2.0服务器控件开发精要(转载)
    一个老程序员的心里话(转载)
    hdu 1316 斐波那契数
    hdu 3117 斐波那契数列
    hdu 1239 素数水题
    hdu 2256 神奇的矩阵
  • 原文地址:https://www.cnblogs.com/haojia/p/12386222.html
Copyright © 2011-2022 走看看