azkaban配置

azkaban:
========================
    工作流调度器


crontab:
    Linux自带定时任务

azkaban:
    轻量级工作流调度器
    linkedIn

oozie:
    复杂任务调度器,重量级
    apache



本地log ===>  MR程序数据清洗 ====> load hive ===> hql ===> hdfs

job        job           job          job


ETL:
    Extract    Transform Load
    抽取    转换      加载


调度工具使用:
=======================
    1、在本地编写job 
        oozie:xml
        azkaban:text k=v

    2、将job进行打包,并通过web页面提交到调度执行器

    3、调度执行器执行调度任务


azkaban安装:
========================
    阶段一:初始化azkaban

        1、创建/soft/azkaban文件夹
        2、将azkaban-web-server-3.46.0.tar.gz
             azkaban-exec-server-3.46.0.tar.gz
           解压到/soft/azkaban下
           tar -xzvf azkaban-web-server-3.46.0.tar.gz -C /soft/azkaban
           tar -xzvf azkaban-exec-server-3.46.0.tar.gz -C /soft/azkaban

        3、将create-all-sql-3.46.0.sql放在/soft/azkaban下

        4、进入mysql并创建数据库
            mysql -uroot -p
            mysql> create database azkaban

        5、使用source命令运行sql脚本(mysql 命令行)
            mysql> use azkaban;
            mysql> source /soft/azkaban/create-all-sql-3.46.0.sql

        azkaban初始化完成
    
    阶段二:创建SSL配置
        1、 生成SSL秘钥
            keytool -keystore keystore -alias jetty -genkey -keyalg RSA

            Enter keystore password:            //hadoop
            Re-enter new password:                //hadoop
            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]:                        //yes

            Enter key password for <jetty>
                (RETURN if same as keystore password):    //回车

        2、将当前目录产生的keystore文件复制到/soft/azkaban/azkaban-web-server-3.46.0下
            cp keystore /soft/azkaban/azkaban-web-server-3.46.0

        
        至此,SSL配置完成


    阶段三:配置文件
        1、修改azkaban-web配置文件/soft/azkaban/azkaban-web-server-3.46.0/conf/azkaban.properties
            
            # 默认时区,改为亚洲/上海
            default.timezone.id=Asia/Shanghai                          
            #修改数据库信息
            database.type=mysql
            mysql.port=3306
            mysql.host=s101
            mysql.database=azkaban
            mysql.user=root
            mysql.password=root
            mysql.numconnections=100

        2、修改azkaban-exec配置文件/soft/azkaban/azkaban-exec-server-3.46.0/conf/azkaban.properties
            
            # 默认时区,改为亚洲/上海
            default.timezone.id=Asia/Shanghai                          
            #修改数据库信息
            database.type=mysql
            mysql.port=3306
            mysql.host=s101
            mysql.database=azkaban
            mysql.user=root
            mysql.password=root
            mysql.numconnections=100

        3、修改azkaban-web下的/soft/azkaban/azkaban-web-server-3.46.0/conf/azkaban-users.xml
            <azkaban-users>
              <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
              <user password="metrics" roles="metrics" username="metrics"/>
              <!-- 添加 -->
              <user username="admin" password="admin" roles="admin,metrics"/>
              <role name="admin" permissions="ADMIN"/>
              <role name="metrics" permissions="METRICS"/>
            </azkaban-users>

        
启动azkaban:
=========================
    1、启动azkaban的web服务
        /soft/azkaban/azkaban-web-server-3.46.0>$ bin/start-web.sh

    2、启动azkaban的exec服务
        /soft/azkaban/azkaban-exec-server-3.46.0>$ bin/start-exec.sh

    3、将以上编写脚本
        /usr/local/bin/azweb.sh:增加执行权限
        
        #!/bin/bash
        if [ $# -ne 1 ] ; then echo param must be 1 ; exit ; fi
        cmd=$1
        cd /soft/azkaban/azkaban-web-server-3.46.0 ; 
        case $cmd in
            start ) bin/start-web.sh ;; 
            stop ) bin/shutdown-web.sh ;;
            * ) echo illegal argument ; exit ;;
        esac
        echo ================ $cmd azweb  ================


        /usr/local/bin/azexec.sh:增加执行权限

        #!/bin/bash
        if [ $# -ne 1 ] ; then echo param must be 1 ; exit ; fi
        cmd=$1
        cd /soft/azkaban/azkaban-exec-server-3.46.0 ; 
        case $cmd in
            start ) bin/start-exec.sh ;; 
            stop ) bin/shutdown-exec.sh ;;
            * ) echo illegal argument ; exit ;;
        esac
        echo ================ $cmd azexec  ================
        
    4、启动web和exec
        azweb.sh start
        azexec.sh start

    
    5、打开azkaban的web界面
        s101:8081

    6、输入用户名和密码
        admin
        admin
    
        

问题1:azkaban的exec进程起不来
    原因:conf/global.properties文件不存在
    解决:/soft/azkaban/azkaban-exec-server-3.46.0>$ touch conf/global.properties

问题2:azkaban的web进程自动停止
    原因:conf/azkaban.properties配置有误
    解决:将配置文件中配置信息后的空格或特殊字符全部删除(包括空格)

问题3:azkaban的web进程起不来
    原因:未初始化数据库
    解决:进入到mysql,输入:
                mysql> use azkaban;
                mysql> source /soft/azkaban/create-all-sql-3.46.0.sql

问题4:azkaban执行job时提示:请求内存,重试
    原因:azkaban在执行时会检查主机内存是否超过3G,否则提示以上
    解决:/soft/azkaban/azkaban-exec-server-3.46.0/plugins/jobtypes/commonprivate.properties
          添加以下配置
          memCheck.enabled=false
    
    
                

azkaban的job创建和使用:
=============================
    
    1、创建单一job:command1.job
        # command1.job
        type=command
        command=echo helloworld
    
    2、将job打包
        将command1.job打成zip压缩包

    3、创建project(web)
        在web界面点击create project,输入
            name:        关于job的名称
            description:    job相关信息(不能留空,不能中文)

    4、上传job
        在project页面点击upload,选择job的zip包并上传

    5、执行job
        点击execute flow执行job
        
        

hive    -e    hive -e "create table xxx(id int, name string)"
    -f    hive -f create.hql

                create.hql ===> create table xxx(id int, name string)
    
    

猜你喜欢

转载自www.cnblogs.com/zyde/p/8947091.html