天天看点

azkaban3.0安装

一、基本环境

    1.安装gradle省略

    2.安装git省略

    3.安装ant省略

    4.安装jdk1.8省略

    5.安装mysql省略

二、创建mysql用户

    mysql -uroot -proot

    #创建数据库

    create database azkaban;

    #创建用户

    create user 'azkaban'@'%' identified by '123456';

    如果创建用户登录提示

    ERROR 1045 (28000): Access denied for user 'azkaban'@'localhost' (using password: YES)

    执行grant all on azkaban.* to azkaban@'localhost' identified by '123456';

    #授权

    grant all on azkaban.* to 'azkaban'@'%' with grant option;

三、初始化azkaban

    1.创建目录 /home/hadoop/apps/azkaban

      在目录下下载

      git clone https://github.com/azkaban/azkaban.git

      git clone https://github.com/azkaban/azkaban-plugins.git

    2.编译

      cd azkaban

      ./gradlew distTar

    3.f复制编译后的文件

      mkdir /home/hadoop/apps/azkaban.3.39

      cd /home/hadoop/apps/azkaban.3.39

      cp /home/hadoop/apps/azkaban/azkaban-exec-server/build/distributions/azkaban-exec-server-3.39.0-17-g7b7833a.tar.gz ./

      cp /home/hadoop/apps/azkaban/azkaban-web-server/build/distributions/azkaban-web-server-3.39.0-17-g7b7833a.tar.gz ./

      cp /home/hadoop/apps/azkaban/azkaban-db/build/distributions/azkaban-db-3.39.0-17-g7b7833a.tar.gz

      tar -zxvf azkaban-exec-server-3.39.0-17-g7b7833a.tar.gz

      tar -zxvf azkaban-web-server-3.39.0-17-g7b7833a.tar.gz

      tar -zxvf azkaban-db-3.39.0-17-g7b7833a.tar.gz

    4.创建azkaban的初始化表

      mysql -uazkaban -pazkaban ;

      use azkaban;

      source /home/hadoop/apps/azkaban3.39/azkaban-db-3.39.0-17-g7b7833a/create-all-sql-3.39.0-17-g7b7833a.sql

四、创建SSL配置

     参考地址: http://docs.codehaus.org/display/JETTY/How+to+configure+SSL

     命令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA

     运行此命令后,会提示输入当前生成 keystor的密码及相应信息,输入的密码请劳记,信息如下:

     输入keystore密码:  本次安装输入的密码为123456

     再次输入新密码:

     您的名字与姓氏是什么?

       [Unknown]: 

     您的组织单位名称是什么?

       [Unknown]: 

     您的组织名称是什么?

       [Unknown]: 

     您所在的城市或区域名称是什么?

       [Unknown]: 

     您所在的州或省份名称是什么?

       [Unknown]: 

     该单位的两字母国家代码是什么

       [Unknown]:  CN

     CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正确吗?

       [否]:  y

     输入<jetty>的主密码

             (如果和 keystore 密码相同,按回车): 

     再次输入新密码:

     完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 考贝到 azkaban web服务器根目录中.如:cp keystore azkaban-web-server-3.39.0-17-g7b7833a

五、安装azkaban-web端

    1、复制web端

    cd azkaban-web-server-3.39.0-17-g7b7833a

    mkdir ./conf

    mkdir ./plugins

    mkdir ./extlib

    cp /home/hadoop/apps/azkaban/azkaban-solo-server/build/resources/main/log4j.properties ./conf

    cd conf

    touch azkaban.properties

    touch global.properties

    touch azkaban-users.xml

    2、修改azkaban.properties

    #Azkaban Personalization Settings

    azkaban.name=Test                           #服务器UI名称,用于服务器上方显示的名字

    azkaban.label=My Local Azkaban                               #描述

    azkaban.color=#FF3601                                                 #UI颜色

    azkaban.default.servlet.path=/index                         #

    web.resource.dir=web/                                                 #默认根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    # global配置文件所在位置

    azkaban.project.dir=projects                                                #

    database.type=mysql                                                              #数据库类型

    mysql.port=3306                                                                       #端口号

    mysql.host=localhost                                                      #数据库连接IP

    mysql.database=azkaban                                                       #数据库实例名

    mysql.user= azkaban                                                                 #数据库用户名

    mysql.password= azkaban                                                        #数据库密码

    mysql.numconnections=100                                                  #最大连接数

    # Velocity dev mode

    velocity.dev.mode=false

    # Jetty服务器属性.

    jetty.maxThreads=25                                                               #最大线程数

    jetty.ssl.port=8443                                                                   #Jetty SSL端口

    jetty.port=8081                                                                         #Jetty端口

    jetty.keystore=keystore                                                            #SSL文件名

    jetty.password=123456                                                             #SSL文件密码

    jetty.keypassword=123456                                                      #Jetty主密码 与 keystore文件相同

    jetty.truststore=keystore                                                            #SSL文件名

    jetty.trustpassword=123456                                                   # SSL文件密码

    # 执行服务器属性

    executor.port=12321                                                               #执行服务器端口

    # 邮件设置

    mail.sender=                                                    #发送邮箱

    mail.host=                                                                 #发送邮箱smtp地址

    mail.user=                                                #发送邮件时显示的名称

    mail.password=                                                          #邮箱密码

    job.failure.email=                                               #任务失败时发送邮件的地址

    job.success.email=                                             #任务成功时发送邮件的地址

    lockdown.create.projects=false                                           #

    cache.directory=cache                                                            #缓存目录

    3.用户配置

    <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>

六、安装azkaban-executor端

    1.在目录下创建 conf extlib plugins projects temp 文件夹 

    2.cd conf 常见 azkaban.properties

    vi azkaban.properties

    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=azkaban

    mysql.password=azkaban

    mysql.numconnections=100

    # Configuring AzabanWebServer and AzkabanExecutorServer clients

    # Azkaban Executor settings

    executor.maxThreads=10

    executor.host=shizhan

    executor.port=12321

    executor.flow.threads=180

    execution.logs.retention.ms=1209600000

    # Multiple Executor Mode

    azkaban.use.multiple.executors=true

    azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus

    azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1

    azkaban.executorselector.comparator.Memory=1

    azkaban.executorselector.comparator.LastDispatched=1

    azkaban.executorselector.comparator.CpuUsage=1

    3.预防异常

     在plugins 下创建jobtypes文件夹

      cd plugins 

      mkdir jobtypes

      vi commonprivate.properties

      # 默认是true,表示特定用户执行任务

      execute.as.user=false

      #说明 azkaban3默认3g内存,用memCheck.enabled关闭

      memCheck.enabled=false

七、复制mysql.jar

    分别往web的extlib 和 executor的extlib文件夹上传mysql-connector-java-5.1.28.jar

八、启动

       nohup  bin/azkaban-executor-start.sh  1>azstd.out  2>azerr.out &

      nohup  bin/azkaban-web-start.sh  1>azstd.out  2>azerr.out &