azkaban的部署以及简单使用 原创 原生zzy 2019-01-17 21:46:58 博主文章分类:azkaban ©著作权 文章标签 azkaban 部署 文章分类 大数据 ©著作权归作者所有:来自51CTO博客作者原生zzy的原创作品,请联系作者获取转载授权,否则将追究法律责任 1.工作流调度器的介绍 (1)为什么要使用工作流调度器? - 一个完整的数据分析系统通常都是由大量任务单元组成:shell 脚本程序,java 程序,mapreduce 程序、hive 脚本等 - 各任务单元之间存在时间先后及前后依赖关系 - 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行 (2)常见工作流调度器 在 hadoop 领域,常见的工作流调度器有 Oozie, Azkaban,Cascading,Hamake 等 。 (3)Oozie与Azkaban的对比 目前企业中最流行的两种调度器是Oozie与Azkaban。总的来说ooize 相比 azkaban 是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器 azkaban 是很不错的候选对象。 二者的区别可以从以下的几个方面进行描述: 功能 两者均可以调度 mapreduce,pig,java,脚本工作流任务两者均可以定时执行工作流任务 工作的定义 Azkaban 使用 Properties 文件定义工作流 Oozie 使用 XML 文件定义工作流 工作流传参 Azkaban 支持直接传参,例如${input} Oozie 支持参数和 EL 表达式,例如${fs:dirSize(myInputDir)} strust2(ONGL) 定时执行 Azkaban 的定时执行任务是基于时间的 Oozie 的定时执行任务基于时间和输入数据 **资源管理 ** Azkaban 有较严格的权限控制,如用户对工作流进行读/写/执行等操作 Oozie 暂无严格的权限控制 **工作流执行 ** Azkaban 有两种运行模式,分别是 solo server mode(executor server 和 web server 部署在同一台节点)和 multi server mode(executor server 和 web server 可以部署在不同节点) Oozie 作为工作流服务器运行,支持多用户和多工作流 **工作流管理 ** Azkaban 支持浏览器以及 ajax 方式操作工作流 Oozie 支持命令行、HTTP REST、Java API、浏览器操作工作流 2.Azkaban 安装部署 Azkaban 是由 Linkedin 开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban 定义了一种 KV 文件(properties)格式来建立任务之间的依赖关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流。 Azkaban的功能特点 Web 用户界面 方便上传工作流 方便设置任务之间的关系 调度任务流 认证/授权 能够杀死并重新执行任务 模块化和可插拔的插件机制 工作流和任务的日志记录审计 Azkaban的实战安装: 安装包: Azkaban Web 服务器:azkaban-web-server-2.5.0.tar.gz Azkaban Excutor 执行服务器:azkaban-executor-server-2.5.0.tar.gz Azkaban 初始化脚本文件:azkaban-sql-script-2.5.0.tar.gz 下载地址:http://azkaban.github.io/downloads.html ① 解压安装包 [root@hadoop03 ~]# tar -zxvf azkaban-web-server-2.5.0.tar.gz -C apps/ azkaban/ [root@hadoop03 ~]# tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C apps/ azkaban/ [root@hadoop03 ~]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C apps/ azkaban/ ②安装 Azkaban 脚本导入 [root@hadoop03 ~]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C apps/ azkaban/ #进入MySQL执行脚本: mysql> create database azkaban; Query OK, 1 row affected (0.01 sec) mysql> use azkaban; Database changed mysql> source /home/hadoop/apps/azkaban/azkaban-script-2.5.0/create-all-sql-2.5.0.sql; ③创建 SSL 配置 #最好是在azkaban 目录下: [root@hadoop03 ~]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA #此命令执行之后会提示输入当前生成 keystore 的密码及相应信息,输入密码请劳记,信息如下: 然后将在当前目录生成 keystore 证书文件,将 keystore 拷贝到 azkaban web 服务器根目录中.如: [root@hadoop03 ~]#cp keystore azkaban/azkaban-web-2.5.0 ④修改配置文件 #先配置好服务器节点上的时区 先生成时区配置文件 Asia/Shanghai,用交互式命令 tzselect 即可 拷贝该时区文件,覆盖系统本地时区配置 [hadoop@hadoop03 ~]$ sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #azkaban web 服务器配置进入 azkaban web 服务器安装目录 conf 目录 [hadoop@hadoop03 ~]$ cd apps/azkaban/azkaban-web-2.5.0/conf/ #修改 azkaban.properties 文件 #用户配置,具体配置参加下文 #Loader for projects # global 配置文件所在位置 executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties azkaban.project.dir=projects #数据库类型 database.type=mysql #端口号 mysql.port=3306 #数据库连接 IP mysql.host=hadoop03 #数据库实例名 mysql.database=azkaban #数据库用户名 mysql.user=root #数据库密码 mysql.password=root #最大连接数 mysql.numcOnnections=100 #Velocity dev mode velocity.dev.mode=false #Jetty 服务器属性. #最大线 程数 jetty.maxThreads=25 #Jetty SSL 端口 jetty.ssl.port=8443 #Jetty 端口 jetty.port=8081 #SSL 文件名 jetty.keystore=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore #SSL 文件密码 jetty.password=hadoop #Jetty 主密码 与 keystore 文件相同 jetty.keypassword=hadoop #SSL 文件名 jetty.truststore=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore # SSL 文件密码 jetty.trustpassword=hadoop # 执行服务器属性 executor.port=12321 #执行服务器端口 # 邮件设置(可选项) mail.sender=xxxxxxxx@163.com #发送邮箱 mail.host=smtp.163.com #发送邮箱 smtp 地址 mail.user=xxxxxxxx #发送邮件时显示的名称 mail.password=********** #邮箱密码 job.failure.email=xxxxxxxx@163.com #任务失败时发送邮件的地址 job.success.email=xxxxxxxx@163.com #任务成功时发送邮件的地址 lockdown.create.projects=false # cache.directory=cache #缓存目录 #进入 azkaban web 服务器 conf 目录,修改 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 #Azkaban default.timezone.id=Asia/Shanghai #时区 #Azkaban JobTypes 插件配置,插件所在位置 azkaban.jobtype.plugin.dir=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/plugins/jobtypes #Loader for projects executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties azkaban.project.dir=projects #数据库设置 #数据库类型(目前只支持 mysql) database.type=mysql #数据库端口号 mysql.port=3306 #数据库 IP 地址 mysql.host=hadoop03 #数据库实例名 mysql.database=azkaban #数据库用 户名 mysql.user=root #数据库密码 mysql.password=root #最大连接数 mysql.numcOnnections=100 #执行服务器配置 #最大线程数 executor.maxThreads=50 #端口号(如修改,请与 web 服务中一致) executor.port=12321 #线程数 executor.flow.threads=30 ⑤配置环境变量 [hadoop@hadoop03 ~]$ vim /etc/profile #/etc/profile export AZKABAN_WEB_HOME=/home/hadoop/apps/azkaban/azkaban-web-2.5.0 export AZKABAN_EXE_HOME=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0 export PATH=$PATH:$AZKABAN_WEB_HOME/bin:$AZKABAN_EXE_HOME/bin ⑥启动 #启动 web 服务器 nohup azkaban-web-start.sh 1>/home/hadoop/azwebstd.out 2>/home/hadoop/azweberr.out & #启动执行服务器 nohup azkaban-executor-start.sh 1>/home/hadoop/azexstd.out 2>/home/hadoop/azexerr.out & ⑥验证是否登录成功 在浏览器中输入:https://hadoop03:8443/ 看到以上界面表示安装成功!!!! 小编这里建议将Azkaban 的web、executor配置文件,所有的相对路径都换成绝对路径,不然经常会报出文件找不到的问题!!!! 3.Azkaban 安装部署报错解决 原因是:在azkaban的server和executor中缺少一个叫derby.jar的包 解决:在已经安装的JDK中: cp $JAVA_HOME/db/lib/derby.jar $AZKABAN_WEB_HOME/extlib cp $JAVA_HOME/db/lib/derby.jar $AZKABAN_EXE_HOME/extlib 如果遇到与MySQL的权限问题: 请参考:https://blog.51cto.com/14048416/2344516 文章。 3.Azkaban 的简单使用 ①创建job :command.job #command.job type=command command=echo 'hello' ②将 job 资源文件打包 [hadoop hadoop03@~ ]$ zip command.job ③通过 azkaban web 管理平台创建 project 并上传压缩包 赞 收藏 评论 分享 举报 上一篇:sqoop的常用命令 下一篇:ElasticSearch的介绍与安装 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 springboot实现密码过期,以及存储5次密码,第六次密码不能与前五次相同 增加是否启用密码过期配置 application.yml#密码有效期开关passwordExpire: true#密码剩余天数提醒修改密码passwordExpireTip: '#{3*24*60*60}'1.已存在用户,第一次登录时判断是否存在redis密码过期设置和存储密码list,不存在,则生成redis信息,不存在,跳过。代码示例:@Value(value = "${hhx redis List 密码过期 springboot Oracle-密码文件 Oracle的密码文件存放了 sysdba/sysoper 身份的用户名及口令。Oracle 允许用户在数据库未启动之前使用口令文件进行验证账号密码,从而启动实例进而加载并打开数据库。当修改了用户密码,同时会修改密码文件 。授权 sysdba 权限给用户时,同时会修改密码文件。密码文件的存放目录:$ORACLE_HOME/dbs/密码文件的命名规则:orapw<ORACLE-SID>示 oracle 修改密码 数据库 密码文件 ESXi 6.7的登录密码修改 如果你忘记了ESXi 6.7的登录密码,以下是一些重置密码的方法:方法一:使用vSphere Client或vSphere Web Client登录到管理ESXi主机的vSphere Client或vSphere Web Client。在客户端中,找到并选择忘记密码的ESXi主机。在主机的“配置”选项卡下,选择“安全性”>“重新启动策略”。将重新启动策略更改为“在下次引导时进入锁定模式”。重 重启 配置文件 Web REDIS明文密码 # 如何实现"REDIS明文密码"## 简介在本文中,我将向你介绍如何实现"REDIS明文密码"。首先,我们将了解整个流程,并用表格展示每个步骤。然后,我将逐步解释每个步骤需要做什么,并提供相应的代码以及对代码的注释。## 整体流程下表展示了实现"REDIS明文密码"的整个流程。| 步骤 | 描述 || ---- | ---- || 步骤1 | 连接到Redis服务器 || Redis 服务器 开发者 ansible 明文密码 Ansible是一个流行的自动化工具,用于管理服务器和配置管理。作为一款强大而灵活的开源工具,Ansible提供了一种简单且可靠的方式来管理各种IT基础设施。然而,在使用Ansible时,明文密码的安全性一直是争议的焦点。明文密码是指以明文形式存储在配置文件中或在Ansible剧本(playbook)中直接使用的密码。这样的做法存在很多安全隐患,因为明文密码可以轻而易举地被他人获取到。一旦密码 Ansible 服务器 管理工具 查看mysql密码明文 # 查看MySQL密码明文MySQL是一种常用的关系型数据库管理系统,用于存储和管理大量的数据。在MySQL中,用户需要设置密码来保护数据库的安全性。然而,有时候我们可能需要查看已设置的密码明文,本文将介绍如何通过MySQL提供的命令和API来实现这一目标。## 1. 使用命令行工具MySQL提供了命令行工具来管理数据库,包括查看密码明文的功能。下面是一些常用的命令行工具和相应的命令示 MySQL mysql sql mysql明文密码登录 # 科普:MySQL明文密码登录## 介绍在MySQL数据库中,用户登录时需要提供用户名和密码。然而,有时候我们可能会遇到明文密码登录的情况。所谓明文密码登录,就是在登录时直接明文传输密码而不经过加密处理。这种方式存在安全风险,因为密码在传输过程中可能被截获,导致密码泄露。## 安全性问题MySQL数据库默认情况下并不支持明文密码登录,而是采用加密方式来传输密码。一旦采用明文密码登录, 数据库 MySQL 用户名 查看MySQL明文密码 # 如何查看MySQL明文密码作为一名经验丰富的开发者,我将教会你如何查看MySQL数据库中的明文密码。首先,让我们整理一下这个过程的步骤。| 步骤 | 操作 || ---- | ---- || 1 | 连接到MySQL数据库 || 2 | 执行查询语句,查看密码 || 3 | 解密密码 |现在让我详细告诉你每一步需要做什么,以及需要使用的代码。## 步骤一:连接到MySQ MySQL 数据库 查询语句 mysql明文密码处理 # MySQL明文密码处理## 导语在开发过程中,我们通常需要与MySQL数据库进行交互,而连接MySQL数据库时需要提供用户名和密码。然而,为了账户的安全性,很多时候我们不希望明文存储密码。那么,如何处理MySQL明文密码呢?本文将介绍一种常见的处理方法,并提供相应的代码示例。## 背景MySQL是一种广泛使用的关系型数据库管理系统。为了保护账户的安全性,在连接MySQL数据库时 散列函数 数据库 MySQL java 密码转明文 # Java密码转明文的实现## 1. 总览本文将介绍如何将Java密码转换为明文。为了实现这一目标,我们将按照以下步骤进行操作:1. 创建一个Java程序2. 导入所需的库3. 编写代码以实现密码转换4. 运行程序并测试结果下面是整个过程的详细步骤:步骤 | 操作--- | ---1 | 创建一个Java程序,例如`PasswordConverter.java`2 | java Java 编写代码 11.明文密码 if(chb.isChecked()==true) { edittext.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); chb.setText("隐藏密 ide ansible+明文密码 Ansible是一种自动化工具,可以让管理员对远程服务器进行配置管理和自动化部署。在使用Ansible时,需要设置远程服务器的连接信息,包括主机名、用户名和密码等。然而,有时候人们可能会犯下一个严重的错误——在Ansible剧本或配置文件中使用明文密码。使用明文密码是一种非常不安全和不推荐的做法。明文密码很容易被黑客窃取,并且可能导致系统遭受严重的损失。所以,在使用Ansible时,我们应该尽 Ansible 远程服务器 密钥管理 mysql获取明文密码 # 实现MySQL获取明文密码## 1. 简介MySQL是一种常用的关系型数据库管理系统,开发者在进行数据库连接时,通常需要提供用户名和密码。本文将介绍如何通过代码获取MySQL数据库的明文密码。## 2. 流程下面是获取MySQL明文密码的步骤表格:| 步骤 | 描述 MySQL 结果集 数据库连接 centos mysql 明文密码 CentOS下使用明文密码连接MySQL的方法在CentOS操作系统中,我们经常需要使用MySQL数据库来存储和管理数据。MySQL是一个开源的关系型数据库管理系统,它通过使用SQL语言对数据进行操作。当我们连接到MySQL服务器时,通常需要提供用户名和密码进行身份验证。然而,有时候我们可能希望在连接MySQL时使用明文密码而不是加密的密码。本文将介绍如何在CentOS环境中使用明文密码连接M MySQL 服务器 mysql mysql 密码转明文 # mysql 密码转明文实现步骤## 1. 了解MySQL密码加密算法在MySQL中,密码是通过加密算法进行存储的。了解这个加密算法对于将加密的密码转换为明文是非常重要的。MySQL使用了不同的加密算法,包括MD5、SHA1、SHA2等。## 2. 创建一个MySQL连接在开始操作前,我们需要创建一个与MySQL数据库的连接。使用如下代码创建一个MySQL连接,并将其保存在变量` MySQL python 加密算法 mysql明文密码和密文密码 # MySQL明文密码和密文密码MySQL是一种常用的关系型数据库管理系统,被广泛应用于Web开发中。在MySQL中,用户可以通过密码进行身份验证,以确保只有授权用户可以访问数据库。然而,为了安全起见,密码通常以密文的形式存储在数据库中,而不是明文。## 明文密码明文密码是指用户在数据库中存储的密码以明文的形式存在。这意味着任何人都可以轻松地看到和理解这些密码。在MySQL中,如果使用 MySQL 数据库 身份验证 uniapp input框密码明文 password="true" java 已知明文破解密码 Known plaintext attack操作方法就是找到加密压缩包中的任意一个文件,用同样的压缩软件同样的压缩方式压缩成一个不加密的包 压缩包 无密码 字节数 Java 登录密码不明文 # 实现Java登录密码不明文## 1. 流程图```mermaidflowchart TD A(用户输入用户名和密码) --> B(密码加密处理) B --> C(验证登录信息) C --> D(登录成功) C --> E(登录失败)```## 2. 状态图```mermaidstateDiagram [*] --> 未登录 用户名 System java mysql 密码转明文 mysql明文密码处理 在高版本的MySQL中用 mysqldump 命令实现数据库备份,需将密码明文方式显示在命令上,但在运行时会报错:mysqldump: [Warning] Using a password on the command line interface can be insecure.这是mysql的登录安全机制,那么我们如何在mysqldump命令中明文传输密码并实现备份呢? 解决方法:用 mysq mysqldump mysql mysql备份 解决方法 MySQL