zoukankan      html  css  js  c++  java
  • Azkaban使用安装文档

             Azkaban使用安装文档

    Azkaban简介

    Azkaban的是什么

    Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

    Azkaban 的优点

    • 提供功能清晰,简单易用的Web UI界面
    • 提供job配置文件快速建立任务和任务之间的依赖关系
    • 提供模块化和可插拔的插件机制,原生支持command、Java、Hive、Pig、Hadoop
    • 基于Java开发,代码结构清晰,易于二次开发

    Azkaban的安装

    Azkaban的安装模式

    Azkaban有三种部署方式:solo server mode , cluster server mode,multiple-execoutor

    • solo server mode(单机模式):该模式中webServer和executorServer运行在同一个进程中,进程名是AzkabanSingleServer。可以使用自带的H2数据库或者配置mysql数据。该模式适用于小规模的使用。
    • cluster server mode(集群模式):该模式使用MySQL数据库,webServer和executorServer运行在不同进程中,该模式适用于大规模应用。

    3.0以后出现

    • multiple-executor模式:exec进程和web进程在不同的机器上,存放元数据的数据库为mysql

    安装mysql

    本地安装

    解压mysql

    Tar -vxf mysql*

    安装mysql

    MySQL-5.6.21-1.el7.x86_64.rpm-bundle.tar

    MySQL-client-5.6.21-1.el7.x86_64.rpm

    MySQL-devel-5.6.21-1.el7.x86_64.rpm

    MySQL-embedded-5.6.21-1.el7.x86_64.rpm

    MySQL-server-5.6.21-1.el7.x86_64.rpm

    MySQL-shared-5.6.21-1.el7.x86_64.rpm

    MySQL-shared-compat-5.6.21-1.el7.x86_64.rpm

    MySQL-test-5.6.21-1.el7.x86_64.rpm

    可能会报错

    删除包冲突即可

    yum -y remove mariadb-libs-*

    在线安装

    wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

    rpm -ivh mysql-community-release-el7-5.noarch.rpm

    yum install mysql-community-server

    安装完成后

    systemctl start mysqld.service

    设置mysql账号并创建azkaban数据库

    mysql -uroot

    mysql> set password for 'root'@'localhost' = password('123456');

    mysql> CREATE DATABASE azkaban;

    mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';   

    mysql> GRANT ALL ON azkaban.* to 'azkaban'@'%' IDENTIFIED BY 'azkaban';

    mysql> flush privileges;

    安装jdk

    Jdk版本必须为1.8以上版本,低版本报错

    上传jdk-8u141-linux-x64.tar.gz 并解压

    tar –xvzf jdk-*;

    配置jdk环境

    export JAVA_HOME=/jdk

    export JRE_HOME=/jdk/jre

    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

    export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JRE_HOME/lib

    Azkaban安装

    本测试在linux(Centos7.2)版本 使用azkaban-3.38进行安装测试

    .编译,安装过程

    1.  git clone https://github.com/azkaban/azkaban.git

    源码,当前为3.38版本(注:需要安装git服务  yum –y install git)

    1. 进入azkaban 项目进行编译 ./gradlew distTar(注:使用gradle进行安装,若没有gradle会自行安装)

    编译结果为

    azkaban-common : 常用工具类。

    azkaban-db : 对应的sql脚本

    azkaban-hadoop-secutity-plugin : hadoop 有关kerberos插件

    azkaban-solo-server: web和executor 一起的项目。

    azkaban-web/executor-server:azkaban的 web和executor的server信息

    azkaban-spi: azkaban存储接口以及exception类

    创建azkaban-3.38

    Mkdir azkaban-3.38

    分别将

    ls

     cd azkaban-web-server/build/distributions/

     ls

      cp azkaban-web-server-3.38.0-2-gbd9e6e4.tar.gz /azkaban-3.38/

      cd ../../../

      ls

      cd azkaban-exec-server/build/distributions/

      ls

      cp azkaban-exec-server-3.38.0-2-gbd9e6e4.tar.gz /azkaban-3.38/

      cd ../../../

    ls

      cd azkaban-db/build/distributions/

      ls

       cp azkaban-db-3.38.0-2-gbd9e6e4.tar.gz /azkaban-3.38/

    解压缩后并重新命名

    tar -xvzf azkaban-db-3.38.0-2-gbd9e6e4.tar.gz

         tar -xvzf azkaban-exec-server-3.38.0-2-gbd9e6e4.tar.gz

         tar -xvzf azkaban-web-server-3.38.0-2-gbd9e6e4.tar.gz

         删除tar压缩包

         rm -fr *.tar.*

         重新命名

         mv azkaban-db-3.38.0-2-gbd9e6e4 azkaban-db-3.38.0-2

         mv azkaban-exec-server-3.38.0-2-gbd9e6e4 azkaban-exec-server-3.38.0-2

         mv azkaban-web-server-3.38.0-2-gbd9e6e4 azkaban-web-server-3.38.0-2

    将 azkaban下的

    cd azkaban-solo-server/build/distributions/

    解压

    tar -xvzf azkaban-solo-server-3.38.0-2-gbd9e6e4.tar.gz

    然后复制 conf 及plugins 文件到azkaban-3.38下的exec及web下

    cp -r  conf  /azkaban-3.38/azkaban-exec-server-3.38.0-2/

      cp -r  conf  /azkaban-3.38/azkaban-web-server-3.38.0-2/

      cp -r  plugins /azkaban-3.38/azkaban-web-server-3.38.0-2/

      cp -r  plugins  /azkaban-3.38/azkaban-exec-server-3.38.0-2/

    导入azkaban sql

    打开mysql使用azkaban数据库

    use azkaban

    source  /azkaban-3.38/azkaban-db-3.38.0-2/create-all-sql-3.38.0-2-gbd9e6e4.sql
    source  /azkaban-3.38/azkaban-db-3.38.0-2/create.active_executing_flows.sql
    source  /azkaban-3.38/azkaban-db-3.38.0-2/create.execution_flows.sql

    配置keystore

    在azkaban-web=*/conf下

    keytool -keystore keystore -alias jetty -genkey -keyalg RSA
    输入密钥库口令:  
    密钥库口令太短 - 至少必须为 6 个字符
    输入密钥库口令:  
    再次输入新口令: 
    您的名字与姓氏是什么?
    [Unknown]:  
    您的组织单位名称是什么?
    [Unknown]:  
    您的组织名称是什么?
    [Unknown]:  
    您所在的城市或区域名称是什么?
    [Unknown]:  
    您所在的省/市/自治区名称是什么?
    [Unknown]:  
    该单位的双字母国家/地区代码是什么?
    [Unknown]: CN
    CN=, OU=, O=, L=, ST=, C=CN是否正确?[否]:  Y


    .配置 conf/azkaban.properties

    修改是数据库配置

    database.type=mysql

    mysql.port=3306

    mysql.host=192.168.3.247

    mysql.database=azkaban

    mysql.user=azkaban

    mysql.password=azkaban

    mysql.numconnections=100

    添加mysql驱动

    在/azkaban-3.38/azkaban-exec-server-3.38.0-2下新建文件夹

    mkdir extlib

    将lib下的mysql链接驱动复制到extlib下

    同时需要修改ban-3.38/azkaban-web-server-3.38.0-2

    下的azkaban.properties和建立extlib文件将mysql驱动拷入

    添加log4j.properties文件

    在/conf下新建log4j.properties文件

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

    拷入同样执行器exec文件下的/conf也需要新建

    启动

    注意先启动执行器然后启动web服务器,需要在bin级目录执行,否则汇报找不到配置文件的错误

    cd azkaban-exec-server-3.38.0-2

                bin/azkaban-executor-start.sh

     cd azkaban-web-server-3.38.0-2

       bin/azkaban-web-start.sh

    ~                                                                                                                                                                     

    ~                                                                                         

    附录

    问题一:

    若报错ntive.lib找不到修改文件

    vi /azkaban/azkaban-common/src/main/java/azkaban/jobExecutor/ProcessJob.java

    将true改为false,重新启动集群

    问题二:

    若mysql数据库链接不上请检查mysql数据库下azkaban数据库是否可以访问,

    若无法远程访问请使用root用户登录到mysql数据库

    mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';   

    mysql> GRANT ALL ON azkaban.* to 'azkaban'@'%' IDENTIFIED BY 'azkaban';

  • 相关阅读:
    vue-router重写push方法,解决相同路径跳转报错
    Vue中的权限管理怎么做
    linux启动过程中建立临时页表
    用redis当作LRU缓存
    用IPV6隧道连接IPV4孤岛
    redis协议规范
    nginx的脚本引擎(二)rewrite
    nginx的脚本引擎(一)
    nginx的变量系统
    Singleton
  • 原文地址:https://www.cnblogs.com/tsxylhs/p/7737016.html
Copyright © 2011-2022 走看看