azkaban简单入门

作者: 隔壁老王的隔壁啊 | 来源:发表于2017-11-20 23:13 被阅读304次

    一、下载

    从github上下载,azkaban , 需要注意的是,azkaban官方只是提供了源码,需要我们自己编译。

    二、编译

    azkaban 的编译也是很简单,但是前提是你需要足够的耐心,我是真的差点弄疯了,编译 花了我几个小时,一直以为我哪里到错误了,最后又编译成功了,实在搞不懂。

    需要注意的是:3.x之后的web项目中没有conf、plugins文件夹,我们需要从solo中复制过来。

    编译的顺序安装官方提供的顺序即可。

    # Build Azkaban
    ./gradlew build
    
    # Clean the build
    ./gradlew clean
    
    # Build and install distributions
    ./gradlew installDist
    
    # Run tests
    ./gradlew test
    
    # Build without running tests
    ./gradlew build -x test
    

    这里需要注意的是,编译azkaban需要git、gradle环境。安装git简单,对版本没有什么要求,一般情况下都是1.7.1.

    yum -y install git
    
    [root@bigdata02 ~]# git --version
    git version 1.7.1
    [root@bigdata02 ~]# 
    

    安装gradle的话,我们需要看下gradle/wrapper文件夹下,编辑gradle-wrapper.properties文件,我们修改如下文件:

    #Sat Sep 09 11:12:17 PDT 2017
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
    distributionUrl=gradle-4.1-all.zip
    

    在最后一行添加我们下载的gradle,我们将其下载的gradle放到wrapper目录下。当然这都是在我们编译之前的准备工作。
    编译完成之后,我们可以在每个对应的工程的class/install目录下找到对应的编译好的项目。初学者我们只需要如下四个项目即可。

    drwxr-xr-x. 2 root root 4096 11月 19 14:53 azkaban-db
    drwxr-xr-x. 9 root root 4096 11月 20 16:25 azkaban-exec-server
    drwxr-xr-x. 8 root root 4096 11月 19 15:22 azkaban-solo-server
    drwxr-xr-x. 8 root root 4096 11月 20 16:25 azkaban-web-server
    
    

    我们需要将solo包的conf、plugins文件夹放到exec、web对应的文件夹。

    启动之前,我们需要生成一个keystore文件.

    keytool -keystore keystore -alias jetty -genkey -keyalg RSA
    

    在启动之前,我们还需要注意下:
    在conf文件夹我们必须有如下三个文件,这三个文件一定要存在。

    # azkaban的核心配置文件
    -rw-r--r--. 1 root root 660 11月 19 17:32 azkaban.properties
    # 这个文件即使是空的也是需要的
    -rw-r--r--. 1 root root   1 11月 19 17:34 global.properties
    # 就是log4j的配置文件
    -rw-r--r--. 1 root root 251 11月 19 17:33 log4j.properties
    

    azkaban 核心配置文件

    # 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=localhost
    mysql.database=azkaban
    mysql.user=root
    mysql.password=root
    mysql.numconnections=25
    
    # 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
    

    还有一个项目没有用,那就是db,在上面的配置文件中也可以看出需要和数据库相连,这里就是我们需要创建一个数据库,这个很简单了,接着导入db项目中的一个有all的sql,创建表即可。

    这里写图片描述
    source create-all-sql-0.1.0-SNAPSHOT.sql
    

    三、启动

    # execute项目下
    bin/azkaban-executor-start.sh
    # web项目下
    bin/azkaban-web-start.sh
    

    测试:
    浏览器输入:https://ip:8443即可出现登录页面

    这里写图片描述

    四、简单示例

    1、创建一个echo.job文件

    type=command
    command=echo "data 2 hive"
    

    2、将echo.job打成zip包

    3、创建一个项目


    这里写图片描述

    4、上传项目


    这里写图片描述

    5、运行

    这里写图片描述

    有可能运行会出现如下问题:

     Job failed, Cannot request memory (Xms 0 kb, Xmx 0 kb) from system for job
    

    解决方法如下:
    在executor文件夹下的plugins/jobtypes/commonprivate.properties文件添加如下代码:

    memCheck.enabled=false 
    

    最后完美解决。

    五、总结

    有时候看着挺简单的东西,安装起来还真是麻烦百出,这就是这次总结吧。

    相关文章

      网友评论

        本文标题:azkaban简单入门

        本文链接:https://www.haomeiwen.com/subject/zgipvxtx.html