azkaban Two Server部署

本文档详细介绍了如何部署Azkaban Two Server,包括下载和编译Azkaban、安装MySQL、设置Azkaban Web服务器,以及解决可能出现的问题,如[Azkaban] No active executors found错误的解决方法。
摘要由CSDN通过智能技术生成

下载并编译文件参考官网:

下载并编译Azkaban

Installing the Solo Server

Follow these steps to get started.

  1. Clone the repo: run git clone https://github.com/azkaban/azkaban.git
  2. Build Azkaban and create an installation: run cd azkaban; ./gradlew build installDist

到这一步这里编译完成就OK了,如果在编译的过程中出现错误首先检测网络是否畅通,还不行的话尝试跳过检测(-x 的意思是跳过检测,博主就是出了一些检测的问题但是不知道为什么发生的,直接跳过也可以正常使用...怀疑是JDK版本问题)

./gradlew build installDist -x test

配置MySql:

mysql -uroot -p你的密码
CREATE DATABASE azkaban;
# Example database creation command. The user name doesn't need to be 'azkaban'
mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'password';
# 授予权限
# Replace db, username with the ones created by the previous steps.
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;
mysql>flush privileges;


service mysql restart

安装azkaban的表(必须要先编译好文件):

use azkaban;
source /root/azkaban-3.81.0/azkaban-db/build/install/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql

安装Azkaban Web server:

解压~/azkaban-3.81.0/azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz到你想要的位置之后

(azkaban-3.81.0是编译后的源目录)

配置SSL:

keytool -keystore keystore -alias jetty -genkey -keylg RSA

然后配置conf/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
# 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.
# 如果开启ssl连接需要设置为true
jetty.use.ssl=true
jetty.maxThreads=25
jetty.port=8084
jetty.ssl.port=8085

jetty.keystore=/root/keystore # keystore文件的位置
jetty.password=000000
jetty.keypassword=000000
jetty.truststore=/root/keystore
jetty.trustpassword=000000
# Azkaban Executor settings
# 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 mysql settings by default. Users should configure their own username and password.
# 数据库连接信息
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=
mysql.numconnections=100
# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
#Multiple Executor
azkaban.use.multiple.executors=true
azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus 
#这里要注意,如果MinimumFreeMemory在的话,机器内存不能小于6G,否则任务不会执行!!!!!!
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
azkaban.executorselector.comparator.Memory=1
azkaban.executorselector.comparator.LastDispatched=1
azkaban.executorselector.comparator.CpuUsage=1

 

软后就可以bin/start-web.sh启动了。

容易遇到的问题:

[Azkaban] No active executors found

启动时候 报这个错误.   

1

2

3

4

5

6

7

8

9

10

2019/12/19 INFO [ExecutorManager] [Azkaban] Initializing executors from database.

2019/12/19 ERROR [ExecutorManager] [Azkaban] No active executors found

2019/12/19 ERROR [StdOutErrRedirect] [Azkaban] Exception in thread "main"

2019/12/19 ERROR [StdOutErrRedirect] [Azkaban] azkaban.executor.ExecutorManagerException: No active executors found

2019/12/19 ERROR [StdOutErrRedirect] [Azkaban]  at azkaban.executor.ActiveExecutors.setupExecutors(ActiveExecutors.java:52)

2019/12/19 ERROR [StdOutErrRedirect] [Azkaban]  at azkaban.executor.ExecutorManager.setupExecutors(ExecutorManager.java:201)

2019/12/19 ERROR [StdOutErrRedirect] [Azkaban]  at azkaban.executor.ExecutorManager.initialize(ExecutorManager.java:135)

2019/12/19 ERROR [StdOutErrRedirect] [Azkaban]  at azkaban.executor.ExecutorManager.start(ExecutorManager.java:149)

2019/12/19 ERROR [StdOutErrRedirect] [Azkaban]  at azkaban.webapp.AzkabanWebServer.launch(AzkabanWebServer.java:231)

2019/12/19 ERROR [StdOutErrRedirect] [Azkaban]  at azkaban.webapp.AzkabanWebServer.main(AzkabanWebServer.java:224)

 

解决方案:  azkaban 数据库里面 有个 executors 表 里 面  port = 12321 的 哪行记录的 active 改为 1 . 

 

 update executors set active =1 where port=12321 ;

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
azkaban的完全分布式部署需要azkaban-solo、azkaban-web-serverazkaban-exec-server和mysql组件。 首先,需要将azkaban-solo解压并重命名为azkaban-solo-server。然后,将azkaban-web-serverazkaban-exec-server复制到不同的服务器上。接下来,需要在每个服务器上配置azkaban的环境变量,并在azkaban-solo-server目录下的conf文件夹中编辑azkaban.properties文件。 在azkaban.properties文件中,需要设置以下参数: - azkaban.executor.enabled=true # 启用执行器 - azkaban.webserver.external.hostname=hostname # 设置azkaban-web-server的主机名 - azkaban.webserver.external.port=port # 设置azkaban-web-server的端口号 - azkaban.executor.port=port # 设置azkaban-exec-server的端口号 - azkaban.database.type=mysql # 设置数据库类型为mysql - azkaban.database.host=database_host # 设置数据库主机名 - azkaban.database.port=database_port # 设置数据库端口号 - azkaban.database.user=database_user # 设置数据库用户名 - azkaban.database.password=database_password # 设置数据库密码 最后,在mysql数据库中创建一个名为azkaban的数据库,并在azkaban-web-serverazkaban-exec-server的conf文件夹中分别编辑azkaban.properties文件,设置以下参数: - database.type=mysql # 设置数据库类型为mysql - database.host=database_host # 设置数据库主机名 - database.port=database_port # 设置数据库端口号 - database.user=database_user # 设置数据库用户名 - database.password=database_password # 设置数据库密码 - azkaban.name=azkaban-web-server # 设置azkaban-web-server的名称 - azkaban.executor.name=azkaban-exec-server # 设置azkaban-exec-server的名称 - azkaban.webserver.url=http://web_server_host:web_server_port # 设置azkaban-web-server的URL 完成以上配置后,启动azkaban-solo-serverazkaban-web-serverazkaban-exec-server,即可实现azkaban的完全分布式部署
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值