azkaban4.0编译安装教程

官方没有提供安装包,因此需要下载源码,自行编译

1.先安装git,编译的时候会用到

#yum –y update

yum –y install git

2.在github上面下载azkaban4.0版本

https://codeload.github.com/azkaban/azkaban/tar.gz/refs/tags/4.0.0

下载完成后将文件复制到/opt目录下,使用命令解压

tar -zxvf azkaban-4.0.0.tar.gz  -C /opt/

3.配置gradle

​cd /opt/azkaban-4.0.0/gradle/wrapper

wget https://services.gradle.org/distributions/gradle-4.6-all.zip

vi gradle-wrapper.properties

然后在gradle-wrapper.properties最后一行改成

distributionUrl=gradle-4.6-all.zip

进入azkban目录,修改gradle的build.gradle的仓库地址为阿里云仓库(respositories节点)以及jar包版本(versions.restli属性)

cd /opt/azkaban-4.0.0

vi build.gradle
buildscript {
  repositories {
    mavenCentral()
    maven {
      url 'https://maven.aliyun.com/repository/central'
    }
    maven {
      url 'https://maven.aliyun.com/repository/gradle-plugin'
    }
    maven {
      url 'https://maven.aliyun.com/repository/public'
    }
    maven {
      url 'https://maven.aliyun.com/repository/google'
    }
  }
  dependencies {
    classpath 'com.cinnober.gradle:semver-git:2.2.3'
    classpath 'net.ltgt.gradle:gradle-errorprone-plugin:0.0.14'
  }
}

plugins {
  id 'com.gradle.build-scan' version '1.9'
  id 'com.github.kt3k.coveralls' version '2.6.3'
  id 'jacoco'
  id 'idea'
}

buildScan {
  licenseAgreementUrl = 'https://gradle.com/terms-of-service'
  licenseAgree = 'yes'
}

apply plugin: 'com.cinnober.gradle.semver-git'

apply plugin: 'compare-gradle-builds'

compareGradleBuilds {
  targetBuild.gradleVersion = "4.0"
}

allprojects {
  apply plugin: 'jacoco'

  repositories {
    mavenCentral()
    mavenLocal()
//  need this for rest.li/pegasus 28.* artifacts until they are in Maven Central:
    maven {
      url 'https://linkedin.bintray.com/maven'
    }
  }
}

ext.versions = [hadoop: '2.10.0',
                hive  : '1.1.0',
                pig   : '0.11.0',
                restli: '27.7.18',
                slf4j : '1.7.18',]

Azkaban4.0.0版本有有三个依赖的版本在中央仓库中下载不到,手动修改这三个jar的版本号,版本为:27.7.18 (对应versions.restli)

'com.linkedin.pegasus:generator',

'com.linkedin.pegasus:restli-server',

'com.linkedin.pegasus:restli-tools',

4.开始编译

cd /opt/azkaban-4.0.0

./gradlew build installDist -x test

正常到这一步就编译成功了

5.部署

在这里我们使用multiple executor模式,集群部署选用3台机器,WebServer部署一台机器,Azkaban ExecServer部署两台机器(暂时部署一台测试)。使用的包如下:

安装包机器
azkaban-db-0.1.0-SNAPSHOT.tar.gz192.168.1.214
azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz192.168.1.213,192.168.1.214
azkaban-web-server-0.1.0-SNAPSHOT.tar.gz192.168.1.213

5.1配置数据库信息

#复制包到/opt/bigdata目录

cp /opt/azkaban-4.0.0/azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz /opt/bigdata/

#解压 azkaban-db-0.1.0-SNAPSHOT.tar.gz压缩包

tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz

cd azkaban-db-0.1.0-SNAPSHOT
#登陆MySQL数据库
mysql -uroot -p

#创建azkaban的数据库
create database azkaban;

#创建azkaban的用户名,对azkaban用户进行授权操作azkaban数据库
create user 'azkaban'@'%' identified by 'azkaban';
GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;
flush privileges;

use azkaban;
##执行azkaban-db-xxx目录中的建表语句
source /root/create-all-sql-0.1.0-SNAPSHOT.sql;

#遇到密码验证不通过的时候可以设置策略

set global validate_password_length=4;

set global validate_password_policy='LOW';

#查看策略

show variables like 'validate_password%';

5.2安装WebServer

先复制azkaban-web-server-0.1.0-SNAPSHOT.tar.gz到其他服务器节点

scp /opt/azkaban-4.0.0/azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz root@bigdata001:/opt/bigdata

然后解压文件

tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz

cd azkaban-web-server-0.1.0-SNAPSHOT

生成安全认证秘钥:Azkaban对于安全管理做得非常好,可以通过SLA、Jetty等实现安全访问,使用以下命令生成

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

根据自己的情况填写,确认后得到一个安全认证的秘钥文件,后续访问Azkaban,需要用到这个文件(Jetty 密码默认azkaban 最好和密钥一致

下一步修改azkaban配置文件

vim conf/azkaban.properties

#编辑配置文件
azkaban.name=azkaban
azkaban.label=Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=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
azkaban.project.dir=projects
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.use.ssl=true
jetty.maxThreads=25
jetty.port=8081
#指定keystore文件的位置
jetty.keystore=/opt/bigdata/azkaban-web-server-0.1.0-SNAPSHOT/keystore
#keystore中的密码
jetty.password=azkaban
jetty.keypassword=azkaban
#指定keystore文件的位置
jetty.truststore=/opt/bigdata/azkaban-web-server-0.1.0-SNAPSHOT/keystore 
#keystore中的密码
jetty.trustpassword=azkaban
# Azkaban Executor settings
# mail settings
mail.sender=
mail.host=
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
# Azkaban mysql settings by default. Users should configure their own username and password.
database.type=mysql
mysql.port=3306
mysql.host=192.168.50.1
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
#Multiple Executor
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

5.3安装ExecServer

使用scp复制azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz到其他节点

for i in 1 2 3;
do
scp /opt/azkaban-4.0.0/azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz root@bigdata001:/opt/bigdata
done

解压文件

tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz

配置azkaban.properties

vim azkaban-exec-server-0.1.0-SNAPSHOT/conf/azkaban.properties

# Azkaban Personalization Settings
default.timezone.id=Asia/Shanghai
# Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
# Velocity dev mode
velocity.dev.mode=false
# Where the Azkaban web server is located
azkaban.webserver.url=http://bigdata001:8081
# mail settings
mail.sender=
mail.host=
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=plugins/jobtypes
# Azkaban mysql settings by default. Users should configure their own username and password.
database.type=mysql
mysql.port=3306
mysql.host= bigdata002
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
# Azkaban Executor settings
executor.maxThreads=50
executor.flow.threads=30
executor.props.resolve.overrideExisting.enabled=false

5.4启动Azkaban

  • 启动ExecServer(先进目录)
cd /opt/bigdata/azkaban-exec-server-0.1.0-SNAPSHOT/

sh bin/start-exec.sh

每一次启动必须手动激活这个exec,要么手动修改数据库,要么执行以下命令

curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo
  •         启动WebServer
cd /opt/bigdata/azkaban-web-server-0.1.0-SNAPSHOT/

sh bin/start-web.sh

然后就可以在浏览器访问WebUI。

http://192.168.1.213:8081

配置了ssl默认地址

https://192.168.1.213:8443

默认用户名密码:azkaban/azkaban

注意:这个脚本里面所有的配置文件都写了相对路径,启动Azkaban的时候,就在Azkaban的根目录中使用bin/start-web.sh启动,不然Azkaban会找不到配置文件

查看启动的端口

ps aux|grep Azkaban

netstat -antup |grep 125502

azkaban4.0编译包​​​​​​​

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值