zoukankan      html  css  js  c++  java
  • CentOS中安装Azkaban 2.5

    必备软件
    yum install git -y
    
    单机安装步骤
    git clone https://github.com/azkaban/azkaban.git
    cd azkaban; ./gradlew build installDist
    cd azkaban-solo-server/build/install/azkaban-solo-server; bin/start-solo.sh
    # open http://localhost:8081/
    bin/shutdown-solo.sh
    
    # 当然,这个也需要你的网络环境比较好,如果是公司网络限制比较多的话,可能出现无法编译的情况,比如无法访问gradle的plugin站点等。
    
    多执行器模式安装
    文件下载

    方法1:下载azkaban代码,编译。

    git clone https://github.com/azkaban/azkaban.git
    or
    git clone https://gitee.com/mirrors/azkaban.git
    cd azkaban; ./gradlew build installDist
    cd azkaban-db; ../gradlew build installDist
    # 当然,这个也需要你的网络环境比较好,如果是公司网络限制比较多的话,可能出现无法编译的情况,比如无法访问gradle的plugin站点等。
    

    方法2:直接下载别人编译好的版本进行安装

    https://pan.baidu.com/s/1tq8FLME2zHR539sTAZUw2A | zkl9

    这个共享包里是基于2.5.0的版本,下载下来三个文件:

    azkaban-executor-2.5.0.zip azkaban-web-2.5.0.zip azkaban-sql-script-2.5.0.tar.gz

    登陆mysql, 设置编码为utf8, 为Azkaban创建数据库, 并授权, 导入脚本

    azkaban官方建议使用mysql作为后端的数据存储db,使用如下命令创建azkaban的数据库:

    mysql -uroot -p123456;
    mysql> CREATE DATABASE azkaban;
    CREATE USER 'azkaban'@'%' IDENTIFIED BY  '123456';
    GRANT ALL PRIVILEGES ON *.* TO 'azkaban'@'192.168.56.3' IDENTIFIED BY '123456';
    flush privileges;
    source /usr/local/azkaban/azkaban-sql/create-all-sql-2.5.0.sql;
    
    创建SSL配置
    keytool -keystore keystore -alias jetty -genkey -keyalg RSA # (记住密码)
    cp keystore /usr/local/azkaban/azkaban-web #将当前目录生成 keystore证书文件拷贝到web服务器根目录中
    
    tzselect #使用交互式命令设置时区(Asia/Shanghai, 选北京就是上海)
    输入密钥库口令:  
    密钥库口令太短 - 至少必须为 6 个字符
    输入密钥库口令:  
    再次输入新口令: 
    您的名字与姓氏是什么?
    [Unknown]:  cao
    您的组织单位名称是什么?
    [Unknown]:  parllay
    您的组织名称是什么?
    [Unknown]:  fenghuotai
    您所在的城市或区域名称是什么?
    [Unknown]:  beijing
    您所在的省/市/自治区名称是什么?
    [Unknown]:  beijing
    该单位的双字母国家/地区代码是什么?
    [Unknown]:  CN
    CN=cao, OU=parllay, O=fenghuotai, L=beijing, ST=beijing, C=CN是否正确?[否]:  Y
    
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #拷贝该时区文件,覆盖系统本地时区配置
    
    zkaban web服务器配置及用户配置, 进入web服务器安装目录conf

    web服务器配置如下:

    vim 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
    
    database.type=mysql
    mysql.port=3306
    mysql.host=192.168.33.205
    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.port=8443
    jetty.port=8081
    jetty.keystore=keystore
    jetty.password=111111
    jetty.keypassword=111111
    jetty.truststore=keystore
    jetty.trustpassword=111111
    
    # Azkaban Executor settings
    executor.port=12321
    
    # mail settings
    # 发送邮箱
    mail.sender=
    #发送邮箱smtp地址
    mail.host=
    # 任务失败时发送邮件的地址
    job.failure.email=
    # 任务成功时发送邮件的地址
    job.success.email=
    
    lockdown.create.projects=false
    cache.directory=cache
    

    用户配置如下:

    vim azkaban-users.xml

    <azkaban-users>
            <user username="azkaban" password="azkaban" roles="admin" groups="azkaban"/>
            <user username="metrics" password="metrics" roles="metrics"/>
            <!-- 设置登录 https://192.168.56.3:8443的账号和密码 -->
            <user username="admin" password="admin" roles="admin,metrics"/>
            <role name="admin" permissions="ADMIN" />
            <role name="metrics" permissions="METRICS"/>
    </azkaban-users>
    
    
    azkaban executor服务器配置, 进入执行服务器安装目录conf

    vim azkaban.properties

    #Azkaban
    default.timezone.id=Asia/Shanghai
    
    # Azkaban JobTypes Plugins
    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=192.168.33.205
    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
    
    
    启动各个服务器

    azkaban web服务器的启动与关闭, 注意: 只能在web服务器根目录运行

    bin/azkaban-web-start.sh
    bin/azkaban-web-shutdown.sh
    # 如果是正式环境可以采用nohup的方式手动启动
    
    

    azkaban executor服务器的启动与关闭, 注意: 只能在执行服务器根目录运行

    bin/azkaban-executor-start.sh
    bin/azkaban-executor-shutdown.sh
    # 如果是正式环境可以采用nohup的方式手动启动
    
    
    登录Web用户界面, 进行操作

    网址示例: https://192.168.56.3:8443
    image

    Azkaban实战

    Azkaba内置的任务类型支持 command、java, 我们可以安装python、datax、sqoop等工具,进行扩展。

    简单示例, 操作步骤:

    创建 job描述文件
    command类型单一job示例

    vim command.job

    # command.job
    type=command
    command=echo 'hello'
    
    
    command类型多job工作流flow示例

    vim foo.job

    # foo.job
    type=command
    command=echo foo
    
    
    # bar.job
    type=command
    dependencies=foo
    command=echo bar
    
    
    HDFS操作任务示例

    vim fs.job

    # fs.job
    type=command
    command=hadoop fs -mkdir /azkaban
    
    
    MapReduce任务示例

    vim mrwc.job

    # mrwc.job
    type=command
    # 也可以将jar包放在mrwc.job的同级目录下, 与其一起压缩为zip文件
    command=hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input/a.txt /input/output
    
    
    HIVE脚本任务示例

    vim hivef.job vim test.sql

    # hivef.job
    type=command
    command=hive -f 'test.sql'
    
    
    create database test_db;
    
    将所有 job资源文件打包压缩成 zip文件, 登录 azkaban的 web管理平台, 上传, 执行

    启动azkaban遇到问题解决

    启动exec-server异常

    异常:java.io.FileNotFoundException: conf/global.properties (没有那个文件或目录)
    解决方法:vim azkaban.properties 修改 executor.global.properties 为绝对路径

    启动exec-web异常

    异常:
    java.lang.RuntimeException:java.lang.reflect.InvocationTargetException

    解决方法:vim azkaban.properties 修改 user.manager.xml.file 为绝对路径

    参考资料

  • 相关阅读:
    go函数
    Linux 查看磁盘容量、查找大文件、查找大目录
    五分钟理解一致性哈希算法(consistent hashing)
    使用Java实现三个线程交替打印0-74
    Python实现IOC控制反转
    Wannafly挑战赛5 A珂朵莉与宇宙 前缀和+枚举平方数
    Yandex Big Data Essentials Week1 Scaling Distributed File System
    Yandex Big Data Essentials Week1 Unix Command Line Interface Processes managing
    Yandex Big Data Essentials Week1 Unix Command Line Interface File Content exploration
    Yandex Big Data Essentials Week1 Unix Command Line Interface File System exploration
  • 原文地址:https://www.cnblogs.com/EasonWu/p/10720662.html
Copyright © 2011-2022 走看看