Azkaban从编译到安装

前言

  • 本文以Azkaban官网为参照,解读如何正确编译安装Azkaban,如有错误之处,请不吝指出。

编译前准备

  • Azkaban介绍:Azkaban官网开篇介绍,Azkaban is a distributed Workflow Manager, implemented at LinkedIn to solve the problem of Hadoop job dependencies. We had jobs that needed to run in order, from ETL jobs to data analytics products.可以很直接的看出Azkaban是一个基于工作流,分布式的调度框架,何为工作流,即作业与作业之间相互的依赖关系的顺序执行。

  • Azkaban以Java语言编写,可部署在linux等系统平台,需要JDK8+的支持,采用Gradle进行编译。

  • 环境准备:

      JDK1.8+的部署,此过程就不再细说
      gcc-c++编译器的安装:yum -y install gcc-c++
      官网github地址下载源码:git clone https://github.com/azkaban/azkaban.git
    

编译

	[root@boyi_bi ~]#cd /opt/src/azkaban
	[root@boyi_bi azkaban]#./gradlew build #此过程需要时间相对较长,耐心等待,编译失败时查看报错信息
	[root@boyi_bi azkaban]#./gradlew clean #编译成功后执行
	[root@boyi_bi azkaban]#./gradlew installDist
	[root@boyi_bi azkaban]#./gradlew test
	[root@boyi_bi azkaban]#./gradlew distTar #编译完成后将相关文件打车工tar包
  • bulid成功之后,分别进入如下目录:
    /opt/src/azkaban/azkaban-db/build/distributions #为Azkaban数据库安装脚本tar包
    /opt/src/azkaban/azkaban-exec-server/build/distributions #为Azkaban executor 安装包
    /opt/src/azkaban/azkaban-web-server/build/distributions #为Azkaban Web 服务安装包
    解压到安装目录等待安装即可

部署

  • Azkaban的工作模式分成executor,web,mysql数据库。其中executor是用于执行Azkaban job(即我们上传的job);而web是用于方便交互操作的web界面;mysql数据库是Azkaban用于存储job,运行过程/结果等信息。mysql不必安装在Azkaban安装的机器上。它们机器之间只要能够访问即可。
  • Azkaban有两种部署方式:
    Solo Server,单机模式,仅用于测试,方便,快捷
    Multi Executor Server,多执行器模式,线上部署的使用方式

Solo Server

  • 运行方式是executor server和web server运行在同一进程,部署方式较为简单,将编译好的文件azkaban-solo-server下的tar包解压到相应文件夹下,开启运行即可。

      bin/start-solo.sh
      bin/shutdown-solo.sh
    

    访问web地址:http://localhost:8081/

Multi Executor Server

  • 安装Mysql

  • 建库建表

      mysql> CREATE DATABASE azkaban;
      mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';
      mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to ''@'%' WITH GRANT OPTION;
      mysql> USE azkaban;
      mysql> SOURCE /opt/software/azkaban/azkaban-db-3.80.0-6-gf9a849f/create-all-sql-3.80.0-6-gf9a849f.sql
    
  • 安装Executor Server

      修改配置文件azkaban.properties
      mysql.user=
      mysql.password=
      执行
      [root@boyi_bi azkaban-exec-server-3.80.0-6-gf9a849f]#./bin/start-exec.sh
      服务起来后,唤醒服务,才能真正使用
      [root@boyi_bi azkaban-exec-server-3.80.0-6-gf9a849f]#curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo
      若启动服务报错,需删除executor.port文件然后再执行上述步骤
    
  • 安装Web Server

修改相应配置文件azkaban.properties
mysql.user=
mysql.password=
执行
[root@boyi_bi azkaban-exec-server-3.80.0-6-gf9a849f]#./bin/start-web.sh
查看日志,如重要报错即可,访问web:http://localhost:8081/

你可能感兴趣的:(Hadoop)