当前位置:首页 >> 互联网
互联网

大数据Hadoop之——任务调度器Azkaban(Azkaban环境调遣)

2025-11-03 12:33

个用处:

在多 Executor 手段也下可以方便适配社会活动逆在某一个 Executor 挂掉,可以在另一个 Executor 上遗漏可以向下升级,从而不影响分派3)联系型元统计元数据(MySQL)

督导传输azkaban种系统的统计数据,除此以外浏览器YouTube的社会活动逆元统计数据、施作指派的存档等。Executor Server和Web Server都通过jdbc频繁地对其操作。

Azkaban 元统计元数据

同上名

描述

active_executing_flows

历史记录意味著指派之中的flow对应每次指派的exejid

execution_flows

Azkaban flow的指派历史记录

executionjobs

Azkaban flow之中的job的指派历史记录

executionjogs

Azkaban flow之中的指派存档历史记录

executors

备有的executor的的资讯,多指派器手段也有多条历史记录

project_files

保留计划的元统计数据

project_flows

计划之中的flow的资讯

project_permissions

计划之中浏览器的特权

project_versions

计划的版本,YouTube浏览器,YouTube小时等

projects

计划的资讯

triggers

分派的资讯

四、Azkaban装配地面部队

在3.0版本之后,我们发放了两种手段也:独立自主的“单独服务于器”手段也和分布式多指派器手段也。比如说介绍两种手段也的区分。

solo server mode(单机手段也):该手段也之中Web Server和Executor Server接入在同一个统计数据逆之中,统计数据逆名AzkabanSingleServer。可以可用内置的H2统计元数据或者备有mysql统计数据。该手段也等同于于小规模的可用。multiple executor mode(多指派器手段也),等同于于大规模的投入生产状况。它的统计元数据应该由新设了主从联系的MySQL实例透过备份。Web Server和Executor Server接入在各有不同的统计数据逆之中,这样升级和公共安均就不会影响到浏览器。这种多主机新设为逃犯带给了健壮和可伸缩的全面性。

迄今为止我们换用的是multiple executor mode手段,分别在各有不同的主机上地面部队多个Azkaban ExecutorServer以应对高并发除此以外勤务指派的情况,从而减轻单个服务于器的受压。

装配步骤如下:

新设统计元数据备有统计元数据以可用多个指派程序为统计元数据之中备有的每个Executor流媒体并装配Executor ServerAzkaban装配该软件装配web服务于器

官方元统计数据:

1)solo server mode装配1、流媒体$ cd /opt/bigdata/hadoop/software$ git clone 2、协作AzkabanFreeBSD$ cd azkaban; ./gradlew build installDist

【人情味除此以外】如果载入收场了,就多指派几次

3、重启服务于$ cd azkaban-solo-server/build/install/azkaban-solo-server$ ./bin/start-solo.sh$ netstat -tnlp|grep 8081### 停止服务于,这底下不指派$ ./bin/shutdown-solo.sh

检查统计数据逆

$ jps 4、web访问检验访问 (意味着TCP是8081)zkaban意味着登记名/密码本:azkaban/azkaban

访问:

5、备有https并据报导服务于

逃犯独立自主服务于器意味着不必用ssl。但你也可以在独立自主的web服务于器上用都只的方法新设它。Azkaban web服务于器大力支持SSL套接字插头,这意味着需要发放加密算法传输库,您可以按照以下步骤转化这底下发放的有效的jetty加密算法传输库:

建立ssl备有

$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA1.读取加密算法库和数: 1234562.再一读取新和数: 1234563.[Unknown]: azkaban4.[Unknown]: azkaban5.[Unknown]: azkaban6.[Unknown]: shenzhen7.[Unknown]: guangdong8.[Unknown]: CN9.[no]: Y 10.(如果和加密算法库和数并不相同, 按回车):

改动Azkaban 备有元统计数据azkaban.properties或azkaban.private.properties(推荐)。

$ cd /opt/bigdata/hadoop/software/azkaban/azkaban-solo-server/build/install/azkaban-solo-server/conf$ touch azkaban.private.properties

在azkaban.private.properties(元统计数据需要建立)备有如下:

# 根据纸片新设的填,keystore元统计数据会自动转化# ssl 元统计数据名jetty.keystore=/opt/bigdata/hadoop/software/azkaban/azkaban-solo-server/build/install/azkaban-solo-server/keystorejetty.password=123456jetty.keypassword=123456# 元统计数据名jetty.truststore=/opt/bigdata/hadoop/software/azkaban/azkaban-solo-server/build/install/azkaban-solo-server/keystorejetty.trustpassword=123456

在azkaban.properties改动如下备有:

jetty.use.ssl=truejetty.ssl.port=8443

据报导服务于

$ ./bin/shutdown-solo.sh ; ./bin/start-solo.sh$ jps$ netstat -tnlp|grep 8443

web访问检验

2)multiple executor mode装配(推荐)

先停掉纸片的服务于

$ /opt/bigdata/hadoop/software/azkaban/azkaban-solo-server/build/install/azkaban-solo-server/bin/shutdown-solo.sh

地面部队建设

hostname

IP

节点并不一定

hadoop-node1

192.168.0.113

Azkaban Web Server/Azkaban Executor Server

hadoop-node2

192.168.0.114

Azkaban Executor Server

1、把载入好的包copy到其它统计元数据

这底下也发放一下我载入的FreeBSD,流媒体电话号码如下:

链接:提取码:6666

$ mkdir /opt/bigdata/hadoop/server/azkaban$ cd /opt/bigdata/hadoop/software/azkaban/$ cp ./azkaban-web-server/build/distributions/azkaban-web-server-3.91.0-313-gadb56414.tar.gz /opt/bigdata/hadoop/server/azkaban/$ cp ./azkaban-exec-server/build/distributions/azkaban-exec-server-3.91.0-313-gadb56414.tar.gz /opt/bigdata/hadoop/server/azkaban/$ cp ./azkaban-db/build/distributions/azkaban-db-3.91.0-313-gadb56414.tar.gz /opt/bigdata/hadoop/server/azkaban/### 解压并改名$ cd /opt/bigdata/hadoop/server/azkaban 2、装配mysql

因为我之后装配过了mysql,不清楚的可以概述我之后的篇文章:大统计数据Hadoop之——统计数据仓库Hive

3、初始化azkaban同上#【人情味除此以外】一般公司禁止mysql -u root -p123456这种手段连接,在history底下有历史记录,实际上安均隐患,大头不想被公司安均监管哦,切记!!!$ mysql -u root -p读取密码本:123456CREATE DATABASE azkaban;CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;

Mysql统计数据包大小不一可能会需要重新备有。意味着情况下,MySQL允许的包大小不一可能会低得不合理。要增高它,您需要将并不一定max_allowed_packet新设为一个巨大的数字,比如1024M。要在linux之中备有,请敞开/etc/my.cnf或者/etc/my.cnf.d/mysql-server.cnf(推荐),在mysqld后面的某个之外,附加以下章节:

[mysqld]max_allowed_packet=1024M

据报导mysql服务于

$ systemctl restart mysqld$ netstat -tnlp|grep 3306

开始初始化azkaban同上

$ cd /opt/bigdata/hadoop/server/azkaban/azkaban-db# 连接mysql$ mysql -u root -p密码本:123456use azkaban# 可能会版本不一样,sql元统计数据也不太一样,create-all-sql-*.sqlsource create-all-sql-3.91.0-313-gadb56414.sql 4、装配 Azkaban Executor Server(hadoop-node1)$ cd /opt/bigdata/hadoop/server/azkaban/azkaban-exec# mysql备有,如果不一样,就需要改动$ grep mysql conf/azkaban.properties

改动conf/azkaban.properties备有元统计数据

### 改动GMTdefault.timezone.id=Asia/Shanghai### 改动mysql hostmysql.host=hadoop-node1### webserver.urlazkaban.webserver.url=### executor.port不新设就是随机值了,简便管理,所以这底下还是互换一个TCP号,看资料大之外都是可用12321这个TCP,这底下也随大逆executor.port=12321

重启服务于

# 【人情味除此以外】需要进入到azkaban-exec统计元数据下指派重启据报导下令,因为备有元统计数据之中有些方向上用的是相对方向上$ cd /opt/bigdata/hadoop/server/azkaban/azkaban-exec# 据报导$ ./bin/shutdown-exec.sh ; ./bin/start-exec.sh# AzkabanExecutorServer$ jps$ telnet -tnlp|grep 12321

在统计元数据之中查看历史记录

通过插头的手段去触发,不能并不需要改同上字段值,切记!!!

# 记得换变为自己的IP或搜索引擎$ curl -G "hadoop-node1:12321/executor?action=activate" && echo

【人情味除此以外】据报导Azkaban Executor Server得重新触发

5、装配 另一台Azkaban Executor Server(hadoop-node2)【第一步】先登记hadoop-node2建立azkaban统计元数据$ mkdir -p /opt/bigdata/hadoop/server/azkaban【第二步】登记到hadoop-node1 copy 装配统计元数据到hadoop-node2$ cd /opt/bigdata/hadoop/server/azkaban$ scp -r azkaban-exec hadoop-node2:/opt/bigdata/hadoop/server/azkaban/【第三步】重启Executor Server# 登记到hadoop-node2 切换到azkaban统计元数据$ cd /opt/bigdata/hadoop/server/azkaban/azkaban-exec$ ./bin/start-exec.sh$ jps$ netstat -tnlp|grep 12321 【第四步】触发Executor Server# 记得换变为自己的IP或搜索引擎$ curl -G "hadoop-node2:12321/executor?action=activate" && echo

【人情味除此以外】据报导Azkaban Executor Server得重新触发

6、装配Azkaban Web Server(hadoop-node1)$ cd /opt/bigdata/hadoop/server/azkaban/azkaban-web# mysql备有,如果不一样,就需要改动$ grep mysql conf/azkaban.properties

改动conf/azkaban.properties备有元统计数据

### 改动GMTdefault.timezone.id=Asia/Shanghai### 改动mysql hostmysql.host=hadoop-node1### azkaban.executorselector.filters分派思路# 把MinimumFreeMemory省略,因为MinimumFreeMemory是6G,自己个人电脑资源实际,如果大头的电脑资源雄厚,可以保留# StaticRemainingFlowSize:根据排队的勤务数来分派勤务到哪台executor电脑# CpuStatus:跟据Cpu空闲情况下来分派勤务到哪台executor电脑azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus

重启服务于

$ ./bin/start-web.sh$ jps$ netstat -tnlp|grep 8081 7、备有HTTPS

跟纸片的一样

$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA1.读取加密算法库和数: 1234562.再一读取新和数: 1234563.[Unknown]: azkaban4.[Unknown]: azkaban5.[Unknown]: azkaban6.[Unknown]: shenzhen7.[Unknown]: guangdong8.[Unknown]: CN9.[no]: Y 10.(如果和加密算法库和数并不相同, 按回车):

备有

在azkaban-web/azkaban.private.properties(元统计数据需要建立)备有如下:

# 根据纸片新设的填,keystore元统计数据会自动转化# ssl 元统计数据名jetty.keystore=/opt/bigdata/hadoop/server/azkaban/azkaban-web/keystorejetty.password=123456jetty.keypassword=123456# 元统计数据名jetty.truststore=/opt/bigdata/hadoop/server/azkaban/azkaban-web/keystorejetty.trustpassword=123456

在azkaban-web/azkaban.properties改动如下备有:

jetty.use.ssl=truejetty.ssl.port=8443

改动azkaban-exec/conf/azkaban.properties

jetty.port=8443# Where the Azkaban web server is locatedazkaban.webserver.url=

据报导服务于

$ ./bin/shutdown-web.sh ; ./bin/start-web.sh$ jps$ netstat -tnlp|grep 8443

web访问检验:

8、Web 浏览器与角色

官方元统计数据:

$ cd /opt/bigdata/hadoop/server/azkaban/azkaban-web$ cat conf/azkaban-users.xml

备有一个管理者浏览器,增高如下一行

据报导web服务于

$ ./bin/shutdown-web.sh ; ./bin/start-web.sh 五、Azkaban实战

官方元统计数据:

1)HelloWorld比如说(单个社会活动逆)

1、在windows状况,增建helloworld.project元统计数据,编辑章节如下:

azkaban-flow-version: 2.0

【人情味除此以外】该元统计数据关键作用,是换用新的Flow-API手段解析flow元统计数据,章节基本上是互换的,2.0版本xxx.flow是yamlJPEG,2.0之后的版本是key=valueJPEG,比如说如下:

type=commandcommand=echo 'hello'

2、增建helloworld.flow元统计数据,章节如下:

nodes: - name: jobA type: command config: command: echo "Hello World"

【人情味除此以外】注意缩进的空格

Name:job名称Type:job子类。command暗示你要指派施作的手段为下令Config:job备有3、将纸片两个元统计数据压缩变为一个zip元统计数据,迄今为止只大力支持zip元统计数据,元统计数据名称需要是英文。

4、增建project

5、把zip元统计数据上带入azkaban指派

6、指派

2)社会活动量依赖范例DependentWorkflow.flownodes: - name: jobA type: command config: command: echo "jobA" - name: jobB type: command config: command: echo "jobB" - name: jobC type: command dependsOn: - jobA - jobB config: command: echo "jobC"DependentWorkflow.projectazkaban-flow-version: 2.0建立project,并把zip元统计数据上带入azkaban指派 指派(指派完jobA和jobB才指派jobC) 4)自动收场遗漏范例

指派一个不实际上的制作者/tmp/retry.sh,则勤务收场,间隙10000ms,遗漏3次,只不过总共会指派4次,1+3(遗漏3次)

AutoFailed2Retry.flow那是nodes: - name: JobA type: command config: command: sh /tmp/retry.sh retries: 3 retry.backoff: 10000

retries:遗漏次数retry.backoff:遗漏的间隙小时(ms)

AutoFailed2Retry.projectazkaban-flow-version: 2.0建立project,并把zip元统计数据上带入azkaban指派 指派

指派了4次,最后一次指派的情况下为收场情况下

5)手动收场遗漏范例

效益:JobA=》JobB(依赖于A)=》JobC(依赖于B)=》JobD(依赖于C)=》JobE(依赖于D)=》JobF(依赖于E)。投入生产状况,任何Job都可能会挂掉,可以根据效益指派想尽办法指派的Job。这底下推论JobC收场了。

ManualFailed2Retry.flow那是nodes: - name: JobA type: command config: command: echo "This is JobA." - name: JobB type: command dependsOn: - JobA config: command: echo "This is JobB." - name: JobC type: command dependsOn: - JobB config: command: sh /tmp/retry.sh - name: JobD type: command dependsOn: - JobC config: command: echo "This is JobD." - name: JobE type: command dependsOn: - JobD config: command: echo "This is JobE." - name: JobF type: command dependsOn: - JobE config: command: echo "This is JobF."ManualFailed2Retry.projectazkaban-flow-version: 2.0建立project,并把zip元统计数据上带入azkaban指派 指派

指派到JobC收场了,后面的Job就会自动取消了

手动建立这个/tmp/retry.sh制作者,每个Executor都建立这个制作者,因为不确定会分派到哪个Executor$ echo "echo 'This is JobC.'"> /tmp/retry.sh

可以看到,之后JobA和JobB指派顺利的就早已指派了。正是预想视觉效果。

6)JavaProcess社会活动逆范例

【人情味除此以外】type不单单只有command,还有javaprocess,当然还有其它type,例如:noop等。可以概述官方元统计数据【概要】

JavaProcess子类可以接入一个自判别主类方法,type子类为javaprocess,可用的备有为:

Xms:最小堆闪存Xmx:最大堆闪存classpath:类方向上,可以省略,省略的话,是flow意味著元统计数据方向上java.class:要接入的Java对象,其之中需要包含Main方法main.args:main方法的值增建azkaban的maven改建工程或者module建立com.bigdata.AzTest类,章节如下:

【比如说】

package com.bigdata;public class AzTest { public static void main(String[] args) { System.out.println("This is Azkaban Test!!!"); }}了了变为jar包azkaban-1.0-SNAPSHOT.jar 增建com.bigdata.testJava.flow,章节如下:nodes: - name: az_javaprocess_test type: javaprocess config: Xms: 100M Xmx: 200M java.class: com.bigdata.AzTestJavaprocessTest001.project,project元统计数据是互换的也是并不必少的。azkaban-flow-version: 2.0把三个元统计数据了了变为zip包 把zip包上带入azkaban上指派 六、Azkaban进阶(必要条件社会活动逆)1)必要条件社会活动逆概要

必要条件社会活动逆功能允许浏览器自判别指派必要条件来重新考虑究竟接入某些Job,必要条件可以由意味著Job的母Job输显现出的接入时值构变为,也可以可用原先义宏。在这些必要条件下,浏览器可以在确定Job指派逻辑时给与得巨大的弹性,例如:只要母Job之一顺利,就可以接入意味著Job。

1、基本原理母Job将值写入JOB_OUTPUT_PROP_FILE状况变量所指向的元统计数据子Job可用${jobName.param}来给与母Job输显现出的值并判别指派必要条件2、大力支持的必要条件表达式:== 等同!= 不等同大于= 大于等同< 小于<= 小于等同&& 与|| 或! 非3、比如说

【比如说一】效益:JobA指派一个shell制作者。JoB指派一个shell制作者,但JobB不需要每天都指派,而只需要每周一指派。

增建JobA.sh#!/bin/bashecho "do JobA"wk=`date +%w`echo "{"wk":$wk}"> $JOB_OUTPUT_PROP_FILE

给与意味著周第几天,0:周日,1暗示周一,则JobB需要到周一才指派,今天不指派

增建JobB.sh#!/bin/bashecho "do JoB"增建condition.flownodes: - name: JobA type: command config: command: sh JobA.sh - name: JobB type: command dependsOn: - JobA config: command: sh JobB.sh condition: ${JobA:wk} == 1将JobA.sh、JobB.sh、condition.flow和azkaban.project了了变为xxx.zip 建立condition计划=》YouTubexxx.zip元统计数据=》指派施作=》检视结果 2)原先义宏1、宏概念

Azkaban之中预置了几个特殊的正确必要条件,叫做原先于宏。

原先于宏会根据所有母Job的完变为情况透过正确,再重新考虑究竟指派。可用的原先义宏如下:

all_success:暗示母Job均部顺利才指派(意味着)all_done:暗示母Job均部完变为才指派all_failed:暗示母Job均部收场才指派one_success:暗示母Job多于一个顺利才指派one_failed:暗示母Job多于一个收场才指派2、比如说

效益:

JobA指派一个shell制作者JobB指派一个shell制作者JobC指派一个shell制作者,建议JobA、JobB之中有一个顺利即可指派

步骤如下:

增建JobA.sh#!/bin/bashecho "do JobA"增建JobB.sh(不建立,检验)#!/bin/bashecho "do JobB"增建JobC.sh#!/bin/bashecho "do JobC"增建marco.flownodes: - name: JobA type: command config: command: sh JobA.sh - name: JobB type: command config: command: sh JobB.sh - name: JobC type: command dependsOn: - JobA - JobB config: command: sh JobC.sh condition: one_success增建marco.projectazkaban-flow-version: 2.0把元统计数据了了变为zip元统计数据,并上带入azkaban上指派 指派

JobB指派收场了,JobC还是指派顺利,检验顺利。

3)除此以外指派社会活动逆

拿之后的范例,新设除此以外分派

每分钟指派一次

把除此以外勤务移除

4)电子邮件报警1、重启的网站协定SMTP服务于

这底下以QQ的网站为各种子类,需要重启的网站协定

2、改动azkaban-web备有,备有发送电子邮件的资讯$ cd /opt/bigdata/hadoop/server/azkaban/azkaban-web$ vi conf/azkaban.properties# 改动的章节如下:mail.sender=2920992033@qq.commail.host=smtp.qq.com# 比如说两行没需要增高mail.user=2920992033@qq.com# password就换变为纸片截图的专利权码(自己的网站专利权码)mail.password=xxxx

据报导web服务于生效

$ ./bin/shutdown-web.sh ; ./bin/start-web.sh3、azkaban备有电子邮件接受人

还是拿纸片的范例透过测试者

查看的网站,发现并未接获了社会活动逆报警电子邮件

5)简讯报警

因为azkaban意味着是不大力支持简讯报警的,所以这底下可用昶象云做之中转实现简讯报警。

1、登记昶象云官网注册并登记备有

这底下必需免费试验性,自己测试者就免费试验性也再多了,如果是商用或者在的企业底下用负责任是需要付费可用的。

可用终端告警模拟器

必需集变为

这底下可用Email集变为手段,因为azkaban大力支持电子邮件

2、备有通知思路 3、新设azkaban备有

备有这个的网站:881841810azkaban@camail.aiops.com

能接获告警简讯,检验ok。大头可以自己试试。

总结

原生的 Azkaban 大力支持的plugin子类有以下这些:

command:Linux shell编辑器勤务javaprocess:原生java勤务gobblin:CE统计数据采集工具箱hadoopJava:接入hadoopMR勤务hive:大力支持指派hiveSQLpig:pig制作者勤务spark:spark勤务hdfsToTeradata:把统计数据从hdfs整合TeradatateradataToHdfs:把统计数据从Teradata整合hdfs

纸片我们比如说之中用到了command和javaprocess,其之中最比较简单而且最会用的是command子类。

Azkaban基石之外就先到这了,后续会有更多相关的篇文章,请大头诚恳等待~

宝宝拉肚子了吃什么好
云南妇科医院哪里比较好
梅州白癜风医院哪好
江苏包皮过长治疗医院
宝鸡白癜风医院哪里比较好

上一篇: 东风风神皓极即将开启盲订,双色内饰,180kW负载你爱了吗?

下一篇: 孕期用到这4种不适反应,恰恰说明胎儿发育好,孕妈就偷着乐吧

友情链接