azkaban的安装部署、使用与常见问题解决
来源:互联网 发布:863软件孵化器靠谱吗 编辑:程序博客网 时间:2024/06/05 20:35
azkaban介绍
为什么需要工作流调度系统
一个完整的数据分析系统通常都是由大量任务单元组成:
shell脚本程序,java程序,mapreduce程序、hive脚本等
各任务单元之间存在时间先后及前后依赖关系
为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;
例如,我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天都要对其进行处理,处理步骤如下所示:
1、通过Hadoop先将原始数据同步到HDFS上;
2、借助MapReduce计算框架对原始数据进行转换,生成的数据以分区表的形式存储到多张Hive表中;
3、需要对Hive中多个表的数据进行JOIN处理,得到一个明细数据Hive大表;
4、将明细数据进行复杂的统计分析,得到结果报表信息;
5、需要将统计分析得到的结果数据同步到业务系统中,供业务调用使用。
Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
azkaban的安装部署
下载还jar包
我这里使用的是
azkaban-executor-server-2.5.0.tar.gz
azkaban-sql-script-2.5.0.tar.gz
azkaban-web-server-2.5.0.tar.gz
将jar包上传到linux下
创建目录azkaban
将三个半解压到azkaban目录下
[root@mini1 ~]# mkdir azkaban[root@mini1 ~]# tar -zxvf azkaban-web-server-2.5.0.tar.gz -C azkaban[root@mini1 ~]# tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C azkaban[root@mini1 ~]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C azkaban[root@mini1 ~]# cd azkaban/[root@mini1 azkaban]# ll总用量 12drwxr-xr-x. 2 root root 4096 10月 19 16:27 azkaban-2.5.0drwxr-xr-x. 7 root root 4096 10月 19 16:26 azkaban-executor-2.5.0drwxr-xr-x. 8 root root 4096 10月 19 16:26 azkaban-web-2.5.0
将azkaban-executor-2.5.0和azkaban-web-2.5.0重命名
[root@mini1 azkaban]# mv azkaban-web-2.5.0/ server[root@mini1 azkaban]# mv azkaban-executor-2.5.0/ executor[root@mini1 azkaban]# ll总用量 12drwxr-xr-x. 8 root root 4096 10月 19 16:26 azkaban-2.5.0drwxr-xr-x. 7 root root 4096 10月 19 16:26 executordrwxr-xr-x. 2 root root 4096 10月 19 16:27 server
在mini1上重新开启个窗口,打开mysql(如果没有安装请参考hive的安装)创建个数据库azkaban
将azkaban-2.5.0下的sql脚本 create-all-sql-2.5.0.sql 导入到mysql
create-all-sql-2.5.0.sql是一堆建表语句,如下
[root@mini1 azkaban-2.5.0]# cat create-all-sql-2.5.0.sql CREATE TABLE active_executing_flows ( exec_id INT, host VARCHAR(255), port INT, update_time BIGINT, PRIMARY KEY (exec_id));CREATE TABLE active_sla ( exec_id INT NOT NULL, job_name VARCHAR(128) NOT NULL, check_time BIGINT NOT NULL, rule TINYINT NOT NULL, enc_type TINYINT, options LONGBLOB NOT NULL, primary key(exec_id, job_name));...
mysql> create database azkaban;Query OK, 1 row affected (0.01 sec)mysql> use azkaban;Database changedmysql> source /root/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sqlmysql> show tables;+------------------------+| Tables_in_azkaban |+------------------------+| active_executing_flows || active_sla || execution_flows || execution_jobs || execution_logs || project_events || project_files || project_flows || project_permissions || project_properties || project_versions || projects || properties || schedules || triggers |+------------------------+
创建SSL配置
[root@mini1 server]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA输入密钥库口令: //123456再次输入新口令: //123456您的名字与姓氏是什么?//可以不输入直接回车 [Unknown]: 您的组织单位名称是什么?//可以不输入直接回车 [Unknown]: 您的组织名称是什么?//可以不输入直接回车 [Unknown]: 您所在的城市或区域名称是什么?//可以不输入直接回车 [Unknown]: 您所在的省/市/自治区名称是什么?//可以不输入直接回车 [Unknown]: CN该单位的双字母国家/地区代码是什么?//可以不输入直接回车 [Unknown]: CNCN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=CN, C=CN是否正确? [否]: y输入 <jetty> 的密钥口令 (如果和密钥库口令相同, 按回车): //直接回车[root@mini1 server]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime cp:是否覆盖"/etc/localtime"? y[root@mini1 server]# date2017年 10月 19日 星期四 16:47:57 CST//需要让每台机器时间一致
完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 拷贝到 azkaban web服务器(server)根目录中.
[root@mini1 azkaban]# ll总用量 16drwxr-xr-x. 2 root root 4096 10月 19 16:53 azkaban-2.5.0drwxr-xr-x. 7 root root 4096 10月 19 16:26 executor-rw-r--r--. 1 root root 2224 10月 19 16:37 keystoredrwxr-xr-x. 8 root root 4096 10月 19 16:26 server[root@mini1 azkaban]# cp keystore server/
azkaban web服务器(server)配置
进入azkaban web服务器安装目录 conf目录,修改azkaban.properties文件
[root@mini1 azkaban]# cd server/[root@mini1 server]# ll总用量 32-rw-r--r--. 1 root root 105 4月 22 2014 azkaban.versiondrwxr-xr-x. 2 root root 4096 4月 22 2014 bindrwxr-xr-x. 2 root root 4096 10月 19 16:26 confdrwxr-xr-x. 2 root root 4096 4月 22 2014 extlib-rw-r--r--. 1 root root 2224 10月 19 16:55 keystoredrwxr-xr-x. 2 root root 4096 10月 19 16:26 libdrwxr-xr-x. 2 root root 4096 4月 22 2014 pluginsdrwxr-xr-x. 6 root root 4096 10月 19 16:26 web[root@mini1 server]# cd conf/[root@mini1 conf]# ll总用量 8-rw-r--r--. 1 root root 1022 4月 22 2014 azkaban.properties-rw-r--r--. 1 root root 266 4月 22 2014 azkaban-users.xml[root@mini1 conf]# vi azkaban.properties #Azkaban Personalization Settingsazkaban.name=Test #服务器UI名称,用于服务器上方显示的名字azkaban.label=My Local Azkaban #描述azkaban.color=#FF3601 #UI颜色azkaban.default.servlet.path=/index #web.resource.dir=/root/azkaban/server/web/ #默认根web目录 建议最好写绝对路径,以免出现找不到文件错误default.timezone.id=Asia/Shanghai #默认时区,已改为亚洲/上海 默认为美国#Azkaban UserManager classuser.manager.class=azkaban.user.XmlUserManager #用户权限管理默认类user.manager.xml.file=/root/azkaban/server/conf/azkaban-users.xml #用户配置,具体配置参加下文#Loader for projectsexecutor.global.properties=/root/azkaban/serverconf/global.properties # global配置文件所在位置azkaban.project.dir=projects #database.type=mysql #数据库类型mysql.port=3306 #端口号mysql.host=localhost #数据库连接IP mysql.database=azkaban #数据库实例名 mysql.user=root #数据库用户名 mysql.password=123456 #数据库密码mysql.numconnections=100 #最大连接数 # Velocity dev modevelocity.dev.mode=false # Jetty服务器属性.jetty.maxThreads=25 #最大线程数 jetty.ssl.port=8443 #Jetty SSL端口 jetty.port=8081 #Jetty端口 jetty.keystore=/root/azkaban/server/keystore #SSL文件名jetty.password=123456 #SSL文件密码 jetty.keypassword=123456 #Jetty主密码 与 keystore文件相同 jetty.truststore=/root/azkaban/server/keystore #SSL文件名jetty.trustpassword=123456 # SSL文件密码 # 执行服务器属性executor.port=12321 #执行服务器端口# 邮件设置mail.sender=xxxxxxxx@163.com #发送邮箱mail.host=smtp.163.com #发送邮箱smtp地址mail.user=xxxxxxxx #发送邮件时显示的名称mail.password= #邮箱密码job.failure.email= #任务失败时发送邮件的地址job.success.email= #任务成功时发送邮件的地址lockdown.create.projects=false #cache.directory=cache #缓存目录
用户配置
进入azkaban web服务器(server)conf目录,修改azkaban-users.xml
[root@mini1 conf]# vi 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>
配置的只有第三行,是用来登录的用户名和密码
azkaban 执行服务器executor配置
进入执行服务器安装目录conf,修改azkaban.properties
[root@mini1 azkaban]# cd executor/[root@mini1 executor]# ll总用量 24-rw-r--r--. 1 root root 105 4月 22 2014 azkaban.versiondrwxr-xr-x. 2 root root 4096 4月 22 2014 bindrwxr-xr-x. 2 root root 4096 10月 19 16:26 confdrwxr-xr-x. 2 root root 4096 4月 22 2014 extlibdrwxr-xr-x. 2 root root 4096 10月 19 16:26 libdrwxr-xr-x. 2 root root 4096 4月 22 2014 plugins[root@mini1 executor]# cd conf[root@mini1 conf]# ll总用量 8-rw-r--r--. 1 root root 55 4月 22 2014 azkaban.private.properties-rw-r--r--. 1 root root 469 4月 22 2014 azkaban.properties-rw-r--r--. 1 root root 0 4月 22 2014 global.properties[root@mini1 conf]# vi azkaban.properties #Azkabandefault.timezone.id=Asia/Shanghai# Azkaban JobTypes Pluginsazkaban.jobtype.plugin.dir=plugins/jobtypes#Loader for projectsexecutor.global.properties=executor.global.properties=/root/azkaban/executor/conf/global.propertiesazkaban.project.dir=projectsdatabase.type=mysqlmysql.port=3306mysql.host=localhostmysql.database=azkabanmysql.user=rootmysql.password=123456mysql.numconnections=100# Azkaban Executor settingsexecutor.maxThreads=50executor.port=12321executor.flow.threads=30
到这里就配置完了
启动
进入到server的bin目录
[root@mini1 bin]# ll总用量 52-rw-r--r--. 1 root root 9348 10月 19 17:51 azkaban-access.log-rw-r--r--. 1 root root 18031 10月 19 17:51 azkaban-webserver.log-rwxr-xr-x. 1 root root 161 4月 22 2014 azkaban-web-shutdown.sh-rwxr-xr-x. 1 root root 1277 10月 19 17:18 azkaban-web-start.sh-rwxr-xr-x. 1 root root 116 4月 22 2014 schedule2trigger.sh-rwxr-xr-x. 1 root root 118 4月 22 2014 start-web.shdrwxr-xr-x. 2 root root 4096 10月 19 17:48 temp[root@mini1 bin]# ./azkaban-web-start.sh ...2017/10/25 20:02:50.071 +0800 INFO [log] [Azkaban] Started SslSocketConnector@0.0.0.0:84432017/10/25 20:02:50.071 +0800 INFO [AzkabanWebServer] [Azkaban] Server running on ssl port 8443.^C[root@mini1 bin]# jps1626 ResourceManager2149 Jps1520 NameNode2125 AzkabanWebServer
进入executor的bin目录
[root@mini1 executor]# cd bin[root@mini1 bin]# ll总用量 28-rw-r--r--. 1 root root 0 10月 19 17:36 azkaban-access.log-rwxr-xr-x. 1 root root 305 4月 22 2014 azkaban-executor-shutdown.sh-rwxr-xr-x. 1 root root 1347 10月 19 17:35 azkaban-executor-start.sh-rw-r--r--. 1 root root 600 10月 19 17:38 azkaban-webserver.logdrwxr-xr-x. 3 root root 4096 10月 19 17:50 executionsdrwxr-xr-x. 3 root root 4096 10月 19 17:50 projects-rwxr-xr-x. 1 root root 130 4月 22 2014 start-exec.shdrwxr-xr-x. 2 root root 4096 10月 19 17:50 temp[root@mini1 bin]# ./azkaban-executor-start.sh ...2017/10/25 20:03:19.505 +0800 INFO [AzkabanExecutorServer] [Azkaban] Azkaban Executor Server started on port 123212017/10/25 20:05:19.291 +0800 INFO [FlowRunnerManager] [Azkaban] Cleaning recently finished
启动出错主要就两种,刚好都让我遇到了,反正我每次安装各种服务都能遇到错。
Invalidmaximumheapsize:-Xmx4G
这种错是设置内存太大了,修改下启动脚本azkaban-web-start.sh,azkaban-executor-start.sh,将 AZKABAN_OPTS=”-Xmx4G” 修改为 AZKABAN_OPTS=”-Xmx512M”
这时候在启动又出现各种文件不存在的异常,这是我当时配置的时候都写的相对路径而且写错了,后来改成绝对路径就行了。上面的就是正确的绝对路径。
启动后页面查看
运行一个来试试
创建一个job描述文件
内容是
#command.jobtype=command command=echo 'hello'
打成zip文件
页面登录后,创建project
zip文件上传
这里立即执行
执行成功后,可以查看详情
点击details后能看到详情
- azkaban的安装部署、使用与常见问题解决
- Azkaban的安装与部署
- azkaban安装与使用
- cloudstack安装部署与常见问题解决
- CloudStack安装部署与常见问题解决
- Azkaban安装部署使用超详细
- Azkaban的安装和使用
- Azkaban安装部署
- azkaban安装部署
- Azkaban安装部署
- 记录-安装使用Azkaban遇到的坑
- Azkaban安装与应用
- azkaban安装使用
- azkaban安装使用
- Azkaban简介与使用
- azkaban 的安装
- azkaban的使用
- Azkaban的使用
- c++中内存拷贝函数(C++ memcpy)详解
- 文章标题
- 文本行超出的部分省略号的显示方法
- 自定义view
- 软件测试计划
- azkaban的安装部署、使用与常见问题解决
- navicat for mysql 在ubuntu下的安装
- 锤子官网3D翻转特效banner插件
- 通配符实现动态方法调用
- 共享内存
- Android Studio常用快捷键
- Angular使用详解-简单的页面
- Hive学习1:Hive原理
- Tomcat:PermGen Space 的错误