zoukankan      html  css  js  c++  java
  • Azkaban(3.x)编译安装使用

    官网地址:https://azkaban.readthedocs.io
    Azkaban 有三种部署方式:单服务模式、2个服务模式、分布式多服务模式
    简单实用仅需单服务模式即可
    2个服务模式,需要配置mysql, Azkaban使用MySQL来存储项目和执行

    它具有如下功能特点:

    1、Web用户界面
    2、方便上传工作流
    3、方便设置任务之间的关系
    4、工作流调度
    5、认证/授权
    6、能够杀死并重启工作流
    7、模块化和可插拔的插件机制
    8、项目工作区
    9、工作流和任务的日志记录和审计

    一、下载编译软件 gradle

    下载解压

    $ wget http://services.gradle.org/distributions/gradle-5.4.1-bin.zip
    $ unzip gradle-5.4.1-bin.zip -d /opt/
    $ cd /opt/gradle-5.4.1/
    

    添加到环境变量

    $ export GRADLE_HOME=/opt/gradle-5.4.1
    $ export PATH=$GRADLE_HOME/bin:$PATH
    

    验证是否安装成功

    $ gradle -v
    
    ------------------------------------------------------------
    Gradle 5.4.1
    ------------------------------------------------------------
    
    Build time:   2019-04-26 08:14:42 UTC
    Revision:     261d171646b36a6a28d5a19a69676cd098a4c19d
    
    Kotlin:       1.3.21
    Groovy:       2.5.4
    Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
    JVM:          1.8.0_211 (Oracle Corporation 25.211-b12)
    OS:           Linux 3.10.0-957.21.2.el7.x86_64 amd64
    

    二、下载Azkaban源码编译包,并编译

    下载解压

    $ wget https://github.com/azkaban/azkaban/archive/3.57.0.tar.gz
    $ tar -xzvf 3.57.0.tar.gz -C /opt/
    

    编译

    $ cd /opt/azkaban-3.57.0/
    $ ./gradlew build -x test
    
    BUILD SUCCESSFUL in 32m 7s
    73 actionable tasks: 73 executed
    

    编译成功后包存在的位置

    $ pwd
    /home/hadoop/softwares/azkaban-3.57.0/azkaban-solo-server/build/distributions
    

    解压

    $ tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C ~/apps/
    

    修改配置文件

    azkaban.properties

    # Azkaban Personalization Settings
    azkaban.name=xiaoming
    azkaban.label=xiaoming Azkaban
    

    azkaban-users.xml

     <azkaban-users>
      <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
      <user password="metrics" roles="metrics" username="metrics"/>
      <!--新增用户的配置-->
      <user password="admin" roles="admin" username="admin"/>
    
      <role name="admin" permissions="ADMIN"/>
      <role name="metrics" permissions="METRICS"/>
    </azkaban-users>
    

    启动

    $ pwd
    /home/hadoop/apps/azkaban-solo-server-0.1.0-SNAPSHOT/
    $ ./bin/start-solo.sh
    $ jps 
    4032 AzkabanSingleServer
    
    #查看启动日志
    $ pwd
    /home/hadoop/apps/azkaban-solo-server-0.1.0-SNAPSHOT/bin/local
    $ less azkaban-webserver.log
    +0800 INFO [AzkabanWebServer] [Azkaban] Starting Azkaban Server
    +0800 INFO [AzkabanServer] [Azkaban] Loading azkaban settings file from ./internal/../../conf
    +0800 INFO [AzkabanServer] [Azkaban] Loading azkaban properties file
    +0800 INFO [AzkabanDatabaseUpdater] [Azkaban] Use scripting directory sql
    +0800 INFO [AzkabanDatabaseUpdater] [Azkaban] Will auto update any changes.
    +0800 INFO [DataSourceUtils] [Azkaban] h2 DB path: /home/hadoop/apps/azkaban-solo-server-0.1.0-SNAPSHOT/bin/./h2
    

    注意: 安装完成之后,一定要在bin文件的上一层目录进行启动
    ./bin/start-web.sh
    而不能cd到bin目录里面进行启动,因为该启动脚本中引用到了当前位置目录信息

    三、使用Azkaban

    WebUI界面登录 http://hadoop000:8081

    登录

    屏幕快照 2019-06-21 18.46.29

    创建项目: 点击右上角的create project按钮创建

    屏幕快照 2019-06-21 18.47.32

    创建后可进行权限分配

    屏幕快照 2019-06-21 18.43.18

    Job上传

    只支持zip压缩 屏幕快照 2019-06-21 18.51.05

    创建job

    flow20.project

    azkaban-flow-version: 2.0
    

    basic.flow

    nodes:
      - name: jobA
        type: command
        config:
          command: echo "This is an echoed text."
    

    将 flow20.project和basic.flow放一起,压缩成Archive.zip ,然后上传

    basic1.flow

    nodes:
      - name: jobC
        type: noop
        # jobC depends on jobA and jobB
        dependsOn:
          - jobA
          - jobB
    
      - name: jobA
        type: command
        config:
          command: echo "This is an echoed text."
    
      - name: jobB
        type: command
        config:
          command: pwd
    

    将 flow20.project和basic2.flow放一起,压缩成Archive2.zip ,然后上传

    需要关注的点: 屏幕快照 2019-06-21 19.57.30

    屏幕快照 2019-06-21 20.00.18

    屏幕快照 2019-06-21 20.01.14

    屏幕快照 2019-06-21 20.02.38

    屏幕快照 2019-06-21 20.02.38

    四、编写mr-etl调度

    flow20.project

    azkaban-flow-version: 2.0
    

    mr-etl.flow

    nodes:
      - name: jobA
        type: command
        config:
          command: "/home/hadoop/apps/hadoop-2.6.0-cdh5.7.0/bin/hadoop jar /home/hadoop/apps/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar wordcount hdfs://hadoop000:8020/input/wc/hello.txt hdfs://hadoop000:8020/azkaban/mr/output/wcs"
    

    注意分隔符

    查看执行结果: 屏幕快照 2019-06-21 20.43.14

    屏幕快照 2019-06-21 20.46.08屏幕快照 2019-06-21 20.46.38

  • 相关阅读:
    easyui的datagrid右侧没有边框线
    移除input在type="number"时的上下箭头
    端口被占用的解决办法
    给DOM操作生成的元素添加事件
    前端工具——Gulp篇
    python类型学习
    python对象学习
    Python之系统交互(subprocess)
    如何准确高效的获取数据库新插入数据的主键id
    接口和抽象类有什么区别
  • 原文地址:https://www.cnblogs.com/suixingc/p/azkaban3x-bian-yi-an-zhuang-shi-yong.html
Copyright © 2011-2022 走看看