史上最详细azkaban3.X编译安装-亲测成功操作

安装azkaban时参考了网上的资料,结果没一篇能安装成功的。大都是相互抄写。调试半天才都不能成功,大部分的问题是资料版本太老,github上最新的源码不适用,本人从github上面下载的最新azkaban源码进行编译安装或者提供的配置文件有问题。以下为整合各种问题后的安装方式,版本不详。亲测可用

简介:轻量级工作流调度系统,由多个组件组成,其中最基础有三部分,分别为数据库、web-server、exec-server。web-server提供了可视化的界面管理,作业配置;exec-server则是来执行具体的作业,该组件可配置集群。

所需要的编译好的资源链接贴出来

https://download.csdn.net/download/weixin_42008966/10873304

https://download.csdn.net/download/weixin_42008966/10873301

https://download.csdn.net/download/weixin_42008966/10873292

https://download.csdn.net/download/weixin_42008966/10873285

我是准备了三台虚拟机服务器

依赖环境:jdk1.8以上(请提前配置好)

分别创建用户名hadoop01、hadoop02、hadoop03,配置免秘钥相互登录,配置时间同步,安装并启动hadoop集群(Secondary模式),配置hadoop环境变量

预先安装好mysql数据库,我安装的是5.7b版本

 

1、下载源码

    cd ~

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

2、编译成tar包(如果不是第一次构建需要先clean,执行:./gradlew clean)

    cd  azkaban-master

    ./gradlew distTar

3、拷贝压缩包到/home/hadoop/目录上

史上最详细azkaban3.X编译安装-亲测成功操作_第1张图片

编译完成后分别进入到以上标出的目录当中的build/distributions/下将tar包拷贝到/home/hadoop/下分别tar -xzvf命令解压缩到当前目录/home/hadoop/

 

然后进入到mysql所在的节点,用root用户登录mysql

mysql> create database azkaban;

Query OK, 1 row affected (0.00 sec)

mysql> use azkaban;

Database changed

进入到azkaban-db-0.1.0-SNAPSHOT里面,获取create-all-sql-0.1.0-SNAPSHOT.sql完整路径在mysql里面source,会在azkaban数据库当中自动创建所需要的所有的表

mysql> source /home/hadoop/azkaban-db-0.1.0-SNAPSHOT/create-all-sql-0.1.0-SNAPSHOT.sql

然后再创建azkaban用户

创建模板是:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

CREATE USER ' azkaban'@'%' IDENTIFIED BY 'azkaban';

创建完成以后给azkaban用户赋权

然后就可以用azkaban进行登录mysql数据库了

史上最详细azkaban3.X编译安装-亲测成功操作_第2张图片

史上最详细azkaban3.X编译安装-亲测成功操作_第3张图片

 

接下来进入到azkaban的节点(因为我已经配置好了,在hadoop02节点进行的演示,实际上是在hadoop03的/home/hadoop/azkaban-web-server的目录下执行的),进入到/home/hadoop/azkaban-web-server的目录(此处我将解压后的文件夹名字改了一下)执行命令

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

史上最详细azkaban3.X编译安装-亲测成功操作_第4张图片

然后拷贝 azkaban-solo-server下的文件到 azkaban-exec-server中

史上最详细azkaban3.X编译安装-亲测成功操作_第5张图片

然后进入到/home/hadoop/azkaban-exec-server/conf/配置azkaban.properties

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=America/Los_Angeles

default.timezone.id=Asia/Shanghai

# Azkaban UserManager class

user.manager.class=azkaban.user.XmlUserManager

user.manager.xml.file=/home/hadoop/azkaban-web-server/conf/azkaban-users.xml

# Loader for projects

executor.global.properties=/home/hadoop/azkaban-exec-server/conf/global.properties

azkaban.project.dir=projects

database.type=h2

h2.path=./h2

h2.create.tables=true

# Velocity dev mode

velocity.dev.mode=false

# Azkaban Jetty server properties.

jetty.use.ssl=false

jetty.maxThreads=25

jetty.port=8081

 

jetty.ssl.port=8443

jetty.keystore=keystore

jetty.password=azkaban

jetty.keypassword=azkaban

jetty.truststore=keystore

jetty.trustpassword=azkaban

 

# Azkaban Executor settings

executor.port=12321

# mail settings

mail.sender=

mail.host=

# User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.

# enduser -> myazkabanhost:443 -> proxy -> localhost:8081

# when this parameters set then these parameters are used to generate email links.

# if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.

# azkaban.webserver.external_hostname=myazkabanhost.com

# azkaban.webserver.external_ssl_port=443

# azkaban.webserver.external_port=8081

job.failure.email=

job.success.email=

lockdown.create.projects=false

cache.directory=cache

# JMX stats

jetty.connector.stats=true

executor.connector.stats=true

# Azkaban plugin settings

azkaban.jobtype.plugin.dir=/home/hadoop/azkaban-exec-server/plugins/jobtypes

# Number of executions to be displayed

azkaban.display.execution_page_size=16

azkaban.use.multiple.executors=true

 

database.type=mysql

mysql.port=3306

mysql.host=192.168.184.113

mysql.database=azkaban

mysql.user=azkaban

mysql.password=azkaban

mysql.numconnections=100

在conf目录下编辑log4j.properties,注释掉已经有的

在下面增加一行

#log4j.rootLogger=INFO, Console

#log4j.logger.azkaban=INFO, server

#log4j.appender.server=org.apache.log4j.RollingFileAppender

#log4j.appender.server.layout=org.apache.log4j.PatternLayout

#log4j.appender.server.File=logs/azkaban-execserver.log

#log4j.appender.server.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS Z} %p [%c{1}] [Azkaban] %m%n

#log4j.appender.server.MaxFileSize=102400MB

#log4j.appender.server.MaxBackupIndex=2

#log4j.appender.Console=org.apache.log4j.ConsoleAppender

#log4j.appender.Console.layout=org.apache.log4j.PatternLayout

#log4j.appender.Console.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS Z} %p [%c{1}] [Azkaban] %m%n

 

log4j.rootLogger=INFO,C

log4j.appender.C=org.apache.log4j.ConsoleAppender

log4j.appender.C.Target=System.err

log4j.appender.C.layout=org.apache.log4j.PatternLayout

log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

在azkaban-exec-server目录下创建文件夹:mkdir extlib 

将lib目录下的mysql驱动复制到extlib目录下

然后将配置好的文件拷贝到azkaban-web-server目录下

cp -a conf/ extlib/ ../azkaban-web-server

进入到azkaban-web-server/conf/azkaban.properties文件下做如下更改

如果是虚拟机,还需要在

azkaban-exec-server/plugins/jobtypes/commonprivate.properties中增加一行

memCheck.enabled=false

因为azkaban默认需要内存是3G,改成false后就不是默认了

 

然后分别进入到azkaban-exec-server和azkaban-web-server执行bin/start-exec.sh和bin/start-web.sh

如果在启动的时候,日志会有如下的错误,则azkaban进入到mysql数据库执行如下命令

Caused by: azkaban.executor.ExecutorManagerException: No active executor found

at azkaban.executor.ExecutorManager.setupExecutors(ExecutorManager.java:222)

at azkaban.executor.ExecutorManager.(ExecutorManager.java:127)

at azkaban.executor.ExecutorManager$$FastClassByGuice$$e1c1dfed.newInstance()

at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:89)

at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:111)!

很明显是因为没有找到active azkaban executor。所以需要启动一下executor,然后去azkaban使用的mysql数据库中的executors表中查看是否存在active = 1的executor,如果没有,更新即可。

史上最详细azkaban3.X编译安装-亲测成功操作_第6张图片

先jps -l查看进程,停掉azkaban的进程

然后再次执行以上启动azkaban的命令分别进入到azkaban-exec-server和azkaban-web-server执行bin/start-exec.sh和bin/start-web.sh

访问http://ip:8081

就成功进入web操作页面

史上最详细azkaban3.X编译安装-亲测成功操作_第7张图片

以上

转载请说明出处

 

 

 

你可能感兴趣的:(azkaban)