azkaban 动态传参shell篇

部署运行你感兴趣的模型镜像

原文地址:https://www.cnblogs.com/honeybee/p/7921626.html

2. shell类型的job的参数传递

azkaban中的shell 作业,如何接收从webUI传递的参数?

step1: UI页面输入参数定义:
ui_test=test111111111

step2:在job文件myjob.job指定:

##作业定义文件UI输入参数接收:
job_param4=${ui_test}

##作业定义文件脚本命令行引用UI输入参数:
sh test_azkaban_job.sh "${job_param4}"

step3:shell test_azkaban_job.sh 的内容
vi test_azkaban_job.sh

echo "inputparamter:$1"  #接收job文件中传递的参数。

问题:在页面手动执行前面的job时,如果UI参数ui_test在job执行没有输入,会执行失败。异常信息如下:

hello ERROR - Failed to build job executor for job helloCould not find variable substitution for variable(s) [param4->ui_test ]

在定时调度任务指定时,需要指定工作流参数flowParameters :ui_test,避免该错误。

运行时参数:在UI页面重新输入运行时参数时,可以覆盖系统默认生成的参数值。

运行时参数,和UI输入的参数,都可以认为是全局参数,在整个工作流的作业
配置中,都可以通过 ${参数名} 的方式引用使用。

在shell 中直接引用 公共参数,运行时系统参数,UI输入参数,是无效的。
在shell中只能直接使用环境变量;公共参数,运行时系统参数,UI输入参数能只通过shell的脚本参数的方式传递
进来。

job文件中定义的环境变量参数,可以在shell脚本中直接引用,但只对当前job有效。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

课程简介:  本项目课程是一门极具综合性和完整性的大型项目课程;课程项目的业务背景源自各类互联网公司对海量用户浏览行为数据和业务数据分析的需求及企业数据管理、数据运营需求。 本课程项目涵盖数据采集与预处理、数据仓库体系建设、用户画像系统建设、数据治理(元数据管理、数据质量管理)、任务调度系统、数据服务层建设、OLAP即席分析系统建设等大量模块,力求原汁原味重现一个完备的企业级大型数据运营系统。  拒绝demo,拒绝宏观抽象,拒绝只讲不练,本课程高度揉和理论与实战,并兼顾各层次的学员,真正从0开始,循序渐进,每一个步骤每一个环节,都会带领学员从需求分析开始,到逻辑设计,最后落实到每一行代码,所有流程都采用企业级解决方案,并手把手带领学员一一实现,拒绝复制粘贴,拒绝demo化的实现。并且会穿插大量的原创图解,来帮助学员理解复杂逻辑,掌握关键流程,熟悉核心架构。   跟随项目课程,历经接近100+小时的时间,从需求分析开始,到数据埋点采集,到预处理程序代码编写,到数仓体系搭建......逐渐展开整个项目的宏大视图,构建起整个项目的摩天大厦。  由于本课程不光讲解项目的实现,还会在实现过程中反复揉和各种技术细节,各种设计思想,各种最佳实践思维,学完本项目并勤于实践的话,学员的收获将远远超越一个项目的具体实现,更能对大型数据系统开发产生深刻体悟,对很多技术的应用将感觉豁然开朗,并带来融会贯通能力的巨大飞跃。当然,最直接的收获是,学完本课程,你将很容易就拿到大数据数仓建设或用户画像建设等岗位的OFFER课程模块: 1. 数据采集:涉及到埋点日志flume采集系统,sqoop业务数据抽取系统等; 2. 数据预处理:涉及到各类字典数据构建,复杂结构数据清洗解析,数据集成,数据修正,以及多渠道数据的用户身份标识打通:ID-MAPPING等;3. 数据仓库:涉及到hive数仓基础设施搭建,数仓分层体系设计,数仓分析主题设计,多维分析实现,ETL任务脚本开发,ETL任务调度,数据生命周期管理等;4. 数据治理:涉及数据资产查询管理,数据质量监控管理,atlas元数据管理系统,atlas数据血缘管理等;5. 用户画像系统:涉及画像标签体系设计,标签体系层级关系设计,各类标签计算实现,兴趣类标签的衰减合并,模型标签的机器学习算法应用及特征提取、模型训练等;6. OLAP即席分析平台:涉及OLAP平台的整体架构设计,技术选型,底层存储实现,Presto查询引擎搭建,数据服务接口开发等;7. 数据服务:涉及数据服务的整体设计理念,架构搭建,各类数据访问需求的restapi开发等;课程所涉及的技术: 整个项目课程中,将涉及到一个大型数据系统中所用到的几乎所有主要技术,具体来说,包含但不限于如下技术组件:l Hadoopl Hivel HBasel SparkCore /SparkSQL/ Spark GRAPHX / Spark Mllibl Sqoopl Azkabanl Flumel lasal Kafkal Zookeeperl Solrl Prestop
<think>好的,用户想了解如何使用Azkaban运行Shell脚本,我需要根据提供的引用信息和之前的回答来整理步骤。首先,用户之前的问题是关于DWD和ADS层的区别,现在转向了Azkaban的调度任务,可能是在构建数据仓库的自动化流程中遇到需求。 用户提供的引用中有四个关于Azkaban的用法,包括job文件的编写、权限设置、格式转换以及任务依赖关系。需要将这些信息整合成清晰的步骤教程。首先,用户需要知道如何创建Azkaban的job文件,其中type=command,并指定command参数执行shell脚本。然后,在Windows环境下编写脚本可能会遇到格式问题,需要转换为Unix格式,并设置权限。此外,引用中提到job之间的依赖关系,可能需要解释如何构建flow。 用户可能遇到的问题包括脚本执行失败,比如权限不足或格式错误,以及如何配置多个任务之间的依赖。需要详细说明每个步骤,比如修改文件格式的方法,使用vim的set fileformat=unix命令。另外,示例中的路径是否正确,是否需要根据用户实际环境调整,比如上到Linux的具体目录。 还要注意是否需要解释Azkaban的基本概念,比如工程、flow、job的关系,但根据用户的问题,可能已经有一定了解,所以可以简要提及。最后,生成相关问题,帮助用户深入理解,比如监控任务状态、处理复杂依赖、调试失败任务等。</think>### 使用 Azkaban 运行 Shell 脚本的完整指南 #### 一、基础环境配置 1. **文件格式转换** - Windows 编写的脚本需转换为 Unix 格式(避免`^M`错误) ```bash vim your_script.sh :set fileformat=unix # 执行格式转换 :set ff # 验证格式显示应为"fileformat=unix" ``` - 权限设置(必须添加可执行权限) ```bash chmod 777 /path/to/your_script.sh # 示例路径如/opt/linkZeppelin/callZeppelin.sh[^2] ``` #### 二、Job 文件编写规范 1. **基础语法结构** 创建`.job`文件(如`shell_1.job`[^1]): ```properties type=command command=sh /绝对路径/your_script.sh # 如/root/azkaban_schedule/shell_az.sh[^1] ``` *注:路径必须为Linux绝对路径,Windows风格路径会导致执行失败* 2. **参数递示例** 带配置文件的复杂调用[^3]: ```properties type=command command=sh /data/azkaban/exec/job/ads_brt_base_all_cnt.sh /data/azkaban/exec/job/configlie.properties ``` #### 三、任务上与执行 1. **工程打包要求** - 所有关联文件打包成`.zip`格式 - 必须包含至少一个`.job`文件 - 目录结构示例: ``` my_project.zip ├── flow1.job ├── flow2.job └── scripts/ ├── script_a.sh └── config.properties ``` 2. **Web UI 操作流程** - 创建工程 → 上ZIP包 → 立即执行 - 任务状态监控: ![Azkaban执行界面](https://via.placeholder.com/600x200?text=Azkaban+Web+UI+Demo) #### 四、进阶配置技巧 1. **任务依赖控制** 构建多任务流水线(如先执行数据清洗再生成报表)[^4]: ```properties # clean_data.job type=command command=sh /path/to/data_cleaning.sh # generate_report.job type=command dependencies=clean_data command=sh /path/to/report_generator.sh ``` 2. **错误处理机制** - 自动重试配置: ```properties retries=3 retry.backoff=30000 # 单位毫秒 ``` #### 五、常见问题排查 | **现象** | **解决方案** | |------------------------|-------------------------------------| | 脚本执行权限被拒绝 | `chmod +x your_script.sh` | | 输出日志显示`command not found` | 检查shebang行(如`#!/bin/bash`) | | 任务状态始终为PREPARING | 确认Azkaban Executor服务已正常启动 | | Windows格式脚本报错 | 使用`dos2unix`工具批量转换[^2] | > **注**:建议通过`command=echo $AZKABAN_FLOW_PROJECT_NAME`验证环境变量注入[^4] #### 六、最佳实践建议 1. **路径管理规范** - 使用统一存储目录(如`/azkaban/scripts`) - 采用版本控制目录结构: ``` /azkaban/v2.1/ ├── daily_jobs └── monthly_jobs ``` 2. **日志管理** - 在脚本中添加日志输出: ```bash #!/bin/bash LOG_FILE=/az_logs/$(date +%Y%m%d).log echo "[$(date)] 任务启动" >> $LOG_FILE ```
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值