azkaban安装与使用

2024-02-16 12:18
文章标签 安装 使用 azkaban

本文主要是介绍azkaban安装与使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.      下载azkaban3.25的”source code.tar.gz”: https://github.com/azkaban/azkaban/releases

2.      解压缩:azkaban-3.25.0.tar.gz,进入azkaban根目录:cd azkaban-3.25.0

3.      执行命令:./gradlew installDist  生成相关文件

4.      创建一个新的文件夹:mkdir azkaban ,复制以下文件内容到XXX目录下:

cp /azkaban-3.25.0/azkaban-web-server/build/install/azkaban-web-server  azkaban

cp /azkaban-3.25.0/azkaban-exec-server/build/install/azkaban-exec-server azkaban

cp /azkaban-3.25.0/azkaban-db/build/install/azkaban-web-server azkaban

5.      在mysql数据库中创建一个数据库:azkaban 

进入azkaban数据库:use Azkaban 

执行:source /azkaban-3.25.0/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql

6.      创建SSL配置:keytool -keystore keystore -alias jetty -genkey -keyalg RSA

提示中只需填写个6位密码即可,其他信息可填可不填

将生成的keystore文件拷贝至XXX目录下:cpkeystore /XXX/azkaban-web-server

7.      先配置好服务器节点上的时区

先生成时区配置文件Asia/Shanghai,用交互式命令 tzselect 即可

拷贝该时区文件,覆盖系统本地时区配置

cp/usr/share/zoneinfo/Asia/Shanghai /etc/localtime

8.      配置azkaban-web-server的conf下的文件:

配置Azkaban.properties

#AzkabanPersonalization Settings

azkaban.name=Test

azkaban.label=MyLocal Azkaban

azkaban.color=#FF3601

azkaban.default.servlet.path=/index

web.resource.dir=web/

default.timezone.id=Asia/Shanghai

 

#AzkabanUserManager class

user.manager.class=azkaban.user.XmlUserManager

user.manager.xml.file=conf/azkaban-users.xml

 

#Loaderfor 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=root

mysql.password=1234

mysql.numconnections=100

 

#Velocity dev mode

velocity.dev.mode=false

 

# AzkabanJetty server properties.

jetty.maxThreads=25

jetty.ssl.port=8443

jetty.port=8081

jetty.keystore=keystore

jetty.password=123456

jetty.keypassword=123456

jetty.truststore=keystore

jetty.trustpassword=123456

 

# AzkabanExecutor settings

executor.port=12321

 

# mailsettings

mail.sender=

mail.host=

job.failure.email=

job.success.email=

 

lockdown.create.projects=false

 

cache.directory=cache

 

配置azkaban-users.xml

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

 

配置log4j.properties

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-ddHH:mm:ss} %-5p %c{1}:%L - %m%n

 

 

 

9.      配置azkaban-exec-server的conf下的文件

配置azkaban.properties

#Azkaban

default.timezone.id=Asia/Shanghai

 

# AzkabanJobTypes Plugins

azkaban.jobtype.plugin.dir=plugins/jobtypes

 

#Loaderfor projects

executor.global.properties=conf/global.properties

azkaban.project.dir=projects

 

azkaban.native.lib=

 

database.type=mysql

mysql.port=3306

mysql.host=localhost

mysql.database=azkaban

mysql.user=root

mysql.password=1234

mysql.numconnections=100

 

# AzkabanExecutor settings

executor.maxThreads=50

executor.port=12321

executor.flow.threads=30

 

# JMXstats

jetty.connector.stats=true

executor.connector.stats=true

 

log4j.properties

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-ddHH:mm:ss} %-5p %c{1}:%L - %m%n

 

配置/plugins/jobtypes/commonprivate.proterties

# setexecute-as-user

execute.as.user=false


#关闭内存检查,若可用内存空间小于3GB会报错

memCheck.enabled=false

 

10.  测试

新建一个任务:command.job

vi command.job

#command.job

type=command

command=echo 'hello azkaban'

 

将command.job打包成zip文件:zipcommand.job

在浏览器中输入url:https://localhost:8443,输入配置好的用户和密码,进入azkaban web client


点击[Create Project],输入项目名和描述

上传command.job.zip


执行流


 

 注:过程中可能遇到的错误:

①若azkaban-web-server和azkaban-exec-server的目录conf无log4j.properties文件则会报以下错误:

Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "main"

②若/azkaban-exec-server/plugins/jobtypes/下commonprivate.proterties文件未配置,则会报以下错误:

未配置:execute.as.user=false 

azkaban.utils.UndefinedPropertyException:Missing required property 'azkaban.native.lib'

atazkaban.utils.Props.getString(Props.java:478)

atazkaban.jobExecutor.ProcessJob.run(ProcessJob.java:155)

at azkaban.execapp.JobRunner.runJob(JobRunner.java:694)

atazkaban.execapp.JobRunner.run(JobRunner.java:544)

atjava.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

atjava.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

22-06-2017 09:53:16 CST a ERROR - Missing required property'azkaban.native.lib' cause: null

 未配置:memCheck.enabled=false

java.lang.Exception: Cannot request memory (Xms 0 kb, Xmx 0 kb) from system for job a  

    at azkaban.jobExecutor.ProcessJob.run(ProcessJob.java:86)  

    at azkaban.execapp.JobRunner.runJob(JobRunner.java:590)  

    at azkaban.execapp.JobRunner.run(JobRunner.java:443)  

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)  

    at java.util.concurrent.FutureTask.run(FutureTask.java:266)  

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)      

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)      

    at java.lang.Thread.run(Thread.java:745) 

 

 

 

这篇关于azkaban安装与使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/714501

相关文章

pandas DataFrame keys的使用小结

《pandasDataFramekeys的使用小结》pandas.DataFrame.keys()方法返回DataFrame的列名,类似于字典的键,本文主要介绍了pandasDataFrameke... 目录Pandas2.2 DataFrameIndexing, iterationpandas.DataF

使用Python和PaddleOCR实现图文识别的代码和步骤

《使用Python和PaddleOCR实现图文识别的代码和步骤》在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等,PaddleOCR是百度开源的一款强大的OCR工具包,它集成了... 目录一、引言二、环境准备2.1 安装 python2.2 安装 PaddlePaddle2.3 安装

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

Python中Flask模板的使用与高级技巧详解

《Python中Flask模板的使用与高级技巧详解》在Web开发中,直接将HTML代码写在Python文件中会导致诸多问题,Flask内置了Jinja2模板引擎,完美解决了这些问题,下面我们就来看看F... 目录一、模板渲染基础1.1 为什么需要模板引擎1.2 第一个模板渲染示例1.3 模板渲染原理二、模板

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚