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 为绝对路径

    参考资料

  • 相关阅读:
    余额宝数据架构阅读
    VS提示This function or variable may be unsafe,The POSIX name for this item is deprecated
    VS中新建QT空项目找不到头文件的问题
    指针
    循环for do while continue break,达夫设备
    GUI程序弹出控制台打印输出信息
    ctime、chrono以及所有和时间有关的内容
    python安装
    文件:fstream,FILE,CFile,filesystem,以及路径目录
    C++异常处理、Dump文件、断言、静态断言、日志文件
  • 原文地址:https://www.cnblogs.com/EasonWu/p/10720662.html
Copyright © 2011-2022 走看看