大数据Hadoop之——任务调度器Azkaban(Azkaban环境调遣)
2025-11-03 12:33
督导传输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 8443web访问检验
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 8443web访问检验:
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: 10000retries:遗漏次数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基石之外就先到这了,后续会有更多相关的篇文章,请大头诚恳等待~
。宝宝拉肚子了吃什么好云南妇科医院哪里比较好
梅州白癜风医院哪好
江苏包皮过长治疗医院
宝鸡白癜风医院哪里比较好

-
过年了,给孩子买什么礼物,让孩子唤起过年的仪式感
今天宝爸给兄弟姐妹在超市卖走许多罐头零食,看着花花绿绿的一堆,让我真真切切地感觉受到,真的较慢过节了,该给兄弟姐妹卖些回礼了。 1、新衣服 哥哥的我们第一印

-
带薪休假是做秀?几何的汽车:我的用户我来宠!
据吉利的汽车公告的最新下载量显示,今年1-4年初,拓扑学的汽车累计下载量达33351辆,营业收入激增了419%,在在,拓扑学的汽车的客户端也从未有所突破20万辆年有。这样的名次不仅让拓扑学的汽车
- 11-0310个相见恨晚的微信小程序,个个实用且免费,请低调美术品使用
- 11-03中金:维持金山软件(03888)“飞驰赢行业”评级 目标价48.7港元
- 11-03生完孩子坐单月子还是双月子?参考3点,产后以后比一般人有效
- 11-03硬刚装甲运兵车500?这台车却只要20万起步?
- 11-03金石资源(603505.SH)拟耗资5000万元至1亿元回购Corporation股份
- 11-03怀孕后大部分孕妈都会遇到这个解决办法,不改正的话伤胎又伤身体!
- 11-03中国将造出世界最大3D打印建筑,AI指挥无人车队,青海羊曲电站
- 11-03达华智能(002512.SZ)股东蔡小如拟被动增资1720万股
- 11-03超12万辆飞驰被召回,频发的质量问题能否引起飞驰重视?
- 11-03当年,60岁老者不顾医生劝阻生下“双胞胎”,如今孩子生活怎样