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

    Azkaban

    MySQL
    Azkaban使用mysql存储很多状态,AzkabanWebServer和AzkabanExecutorServer都会使用mysql数据库


    AzkabanWebServer使用mysql主要有一下用途:

    1、Project Management - 管理项目和项目上传文件
    2、Executing Flow State - 跟踪执行流程和运行他们的Executor
    3、Previous Flow/Jobs:搜索之前的job执行以及访问他们的日志
    4、Scheduler - 保存调度任务的状态
    5、SLA(服务等级协议) - 保存sla规则

    AzkabanExecutorServer使用mysql主要有一下用途:
    1、Access the project - 从数据库中查找项目文件
    2、Executing Flows/Jobs - 查找和更新正在执行的流的数据
    3、Logs - 记录job和flow输出的日志
    4、dependency(交流) - 如果一个flow运行在不同的executor,那么他会把状态存储在数据库中

    AzkabanWebServer是azkaban中最主要的管理者,他主要处理项目管理、认证、调度、监控执行器,它提供了一个web UI界面

    源码下载编译

    下载源码

    1、如果是下面那么下载,则下载的需要jdk1.8或者更高,此处不使用这种下载方式
    git clone https://github.com/azkaban/azkaban.git

    2、下载指定版本的azkaban
    git clone --branch 3.0.0 https://github.com/azkaban/azkaban.git

    下载完成后会有如下警告:

    warning: Remote branch 3.0.0 not found in upstream origin, using HEAD instead

    解决方法:

    进入到下载目录,执行:git checkout 3.0.0

    安装gradle,配置好环境变量

    gradle 编译防止网络下载gradle包

    第一种方式使用gradlew编译:修改下图中红色的部分为本地已经下载好的gradle安装包路径

    第二种方式使用gradle编译:配置好gradle环境变量即可,使用gradle命令编译

    安装git

    yum -y install git

    编译源码

    此处修改gradle-wrapper.properties中distributionUrl为本地gradle

     ./gradlew distTar

    编译中遇见的问题:

    1、编译警告影响编译失败
    warning: [EqualsHashCode] Classes that override equals should also override hashCode.
    public boolean equals(Object obj)
    ^
    (see http://errorprone.info/bugpattern/EqualsHashCode)

    解决方法编辑build.gradle添加如下内容:

    allprojects {
      repositories {
        mavenCentral()
        mavenLocal()
      }
      gradle.projectsEvaluated {
            tasks.withType(JavaCompile) {
                options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
            }
        }
    }
    

    2、编译错误:

    What went wrong:
    Execution failed for task ':azkaban-common:compileMainExecutableMainC'.
    > Could not find C compiler 'gcc' in system path.

    解决方法:

    sudo yum install gcc

    3、编译错误:
    Could not find Linker 'g++' in system path

    解决方法:

    sudo yum install g++
    sudo yum install -y gcc-c++*
    

    安装

    编译成功后,拷贝azkaban-sql-3.0.0.tar.gz、azkaban-exec-server-3.0.0.tar.gz、azkaban-web-server-3.0.0.tar.gz到/home/hadoop/apps/azkaban目录下

    azkaban web服务器安装

    1、解压 tar -zxvf azkaban-web-server-3.0.0.tar.gz
    2、重命名 mv azkaban-web-server-3.0.0 server

    azkaban executor服务器安装

    1、解压 tar -zxvf azkaban-exec-server-3.0.0.tar.gz
    2、重命名 mv azkaban-exec-server-3.0.0 executor

    创建SSL配置

    命令:keytool -keystore keystore -alias jetty -genkey -keyalg RSA
    执行后会提示填写一些信息

    keytool -keystore keystore -alias jetty -genkey -keyalg RSA
    Enter keystore password:  
    Re-enter new password:  
    What is your first and last name?
      [Unknown]:  
    What is the name of your organizational unit?
      [Unknown]:  
    What is the name of your organization?
      [Unknown]:  
    What is the name of your City or Locality?
      [Unknown]:  
    What is the name of your State or Province?
      [Unknown]:  
    What is the two-letter country code for this unit?
      [Unknown]:  CN
    Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN correct?
      [no]:  y
    
    Enter key password for <jetty>
            (RETURN if same as keystore password):
    

    执行成功后会在当前目录生成keystore证书文件

    此时,只需要拷贝证书文件到azkaban web服务器的根目录下即可

    修改配置文件

     配置时区

    1、使用tzselect 生成时区
    2、覆盖系统时区

    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    

    修改azkaban web服务器配置文件
    1、进入到配置文件所在目录conf中
    2、编辑azkaban.properties

    # Azkaban Personalization Settings
    #服务器UI名称,用于服务器上方显示的名字
    azkaban.name=Test
    #描述
    azkaban.label=My Local Azkaban
    #UI颜色
    azkaban.color=#FF3601
    azkaban.default.servlet.path=/index
    #默认根web目录
    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
    # global配置文件所在位置
    executor.global.properties=conf/global.properties
    azkaban.project.dir=projects
    
    #数据库类型,目前只支持mysql
    database.type=mysql
    #端口号
    mysql.port=3306
    #数据库连接IP
    mysql.host=localhost
    #数据库实例名
    mysql.database=azkaban
    #数据库用户名
    mysql.user=root
    #数据库密码
    mysql.password=root
    #最大连接数
    mysql.numconnections=100
    
    # Velocity dev mode
    velocity.dev.mode=false
    
    # Azkaban Jetty server properties.
    #最大线程数
    jetty.maxThreads=25
    #Jetty SSL端口
    jetty.ssl.port=8443
    #Jetty端口
    jetty.port=8081
    #SSL文件名
    jetty.keystore=keystore
    #SSL文件密码
    jetty.password=123456
    #Jetty主密码 与 keystore文件相同
    jetty.keypassword=123456
    #SSL文件名
    jetty.truststore=keystore
    # SSL文件密码
    jetty.trustpassword=123456
    jetty.excludeCipherSuites=SSL_RSA_WITH_DES_CBC_SHA,SSL_DHE_RSA_WITH_DES_CBC_SHA,SSL_DHE_DSS_WITH_DES_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA
    
    # Azkaban Executor settings
    #执行服务器端口
    executor.port=12321
    
    # mail settings 邮件设置
    #发送邮箱
    mail.sender=xxx@qq.com
    #发送邮箱smtp地址
    mail.host=smtp.qq.com
    #发送邮件时显示的名称
    mail.user=xxx9@qq.com
    #发送邮件时的密码
    mail.password=*************
    #任务失败时发送邮件的地址
    job.failure.email=xxx@qq.com
    #任务成功时发送邮件的地址
    job.success.email=xxx@qq.com
    
    lockdown.create.projects=false
    #缓存目录
    cache.directory=cache
    
    # JMX stats
    jetty.connector.stats=true
    executor.connector.stats=true
    

    修改azkaban executor器配置文件
    1、进入到配置文件所在目录conf中
    2、编辑azkaban.properties

    # Azkaban
    #时区
    default.timezone.id=Asia/Shanghai
    
    # Azkaban JobTypes Plugins
    #jobtype 插件所在位置
    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=localhost
    mysql.database=azkaban
    mysql.user=root
    mysql.password=root
    mysql.numconnections=100
    
    # Azkaban Executor settings
    # 执行服务器配置
    executor.maxThreads=50
    executor.port=12321
    executor.flow.threads=30
    
    # JMX stats
    jetty.connector.stats=true
    executor.connector.stats=true
    
    # uncomment to enable inmemory stats for azkaban
    #executor.metric.reports=true
    #executor.metric.milisecinterval.default=60000
    

    用户配置
    进入azkaban web服务器conf目录,修改azkaban-users.xml

    <azkaban-users>
            <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
            <user username="metrics" password="metrics" roles="metrics"/>
            <user username="admin" password="admin" roles="admin,metrics" /> 
            <role name="admin" permissions="ADMIN" />
            <role name="metrics" permissions="METRICS"/>
    </azkaban-users>
    

    主要是添加下面一行

    <user username="admin" password="admin" roles="admin,metrics" />
    

    导入azkaban表结构到mysql中
    1、创建数据库azkaban

    create database azkaban;

    2、导入表结构

    source /home/hadoop/apps/azkaban/azkaban-sql-3.0.0/create-all-sql-3.0.0.sql;

    3、执行针对3.0.0升级的sql
    update.execution_flows.3.0.sql
    update.active_executing_flows.3.0.sql

    启动

    1、启动web服务器,进入web服务器(不要进入bin目录,直接在bin目录所在那层执行,原因是有些配置文件写的是相对路径),执行如下命令

    nohup ./bin/azkaban-web-start.sh &

    2、启动executor,进入executor,不要进入bin目录(原因和上面一样),执行如下命令

    nohup ./bin/azkaban-executor-start.sh

    浏览器访问web服务器:https://服务器IP地址:8443,需要输入的用户名和密码就是在azkaban-users.xml添加的那个用户名和密码

    azkaban3.0.0: http://pan.baidu.com/s/1c19b5gk

  • 相关阅读:
    《MySQL技术内幕》读书笔记
    CentOS裸机环境下安装php-7.3.1
    docker容器和本机互传文件
    一些数组操作函数记录
    window下强制删除文件
    根据一个镜像启动一个容器
    Nginx配置命令大全
    《Linux.Shell编程从入门到精通》读书笔记
    share drive 无效
    vi替换字符串
  • 原文地址:https://www.cnblogs.com/heml/p/6552818.html
Copyright © 2011-2022 走看看