Oozie工作流属性配置的方式与策略

本文原文出处: http://blog.csdn.net/bluishglc/article/details/46049817

Oozie工作流属性配置的三种方式

Oozie有三种方法可以给工作流提供属性属性配置:

  1. App部署文件夹根目录下的:config-default.xml
  2. 作业属性文件:job.properties
  3. 在命令行中指定属性:-Dkey=value

Oozie工作流属性配置的策略(最佳实践)

坦率地讲,三种配置相互重叠,全部使用会使属性的配置过于分散,使得查找和定位属性变得繁琐。就我个人的经验,我倾向于这样做:

  1. 对于静态的,不会因每次启动而发生成改变的配置项,全部配置在config-default.xml,因为这个文件是Oozie部署自包含(self-contained application)应用程序规范的一部分,也就是说这个文件会被自动加载并读取,就如同J2EE的中web.xml一样,所以把静态的配置项写在这里是最理想的。
  2. 对于动态的,会因为每次启动而变化的配置项(典型的例子是coordinator的start time), 通过命令行的方式指定是最合适的。
  3. 通常,大多数的构建工具(比如maven)都能够在构建时根据build的目标环境替换配置文件中的一些变量,我们应该利用这个特性,对config-default.xml和命令行(假如你有一个命令行脚本的话)中的与环境相关的属性在构建时进行替换。典型的例子是nameNode和jobTracker。
  4. 避免使用job.properties,因为job.properties是一个本地文件,它显然没有config-default.xml方便,因为config-default.xml是自包含的。

综上所属,一个简洁地启动工作流的命令行应该是这个样子的:首先,指定oozie.wf.application.path或oozie.coord.application.path或oozie.bundle.application.path是必不可少的,因为至少你要告诉oozie,你的应用程序放在哪里,然后我们需要从命令行中再指定一些动态参数。因此,通过命令行启动一个工作流往往会是这样的:

oozie job -run -Doozie.wf.application.path=hdfs://your-namenode:8020/your/app/path -DPARAM1=${PARAM1} -DPARAM1=${PARAM2}

至于工作流其他的属性配置,都已存放于hdfs://your-namenode:8020/your/app/path/config-default.xml中。

Oozie工作流属性的命名规范

最后,作为一个补充,我们来谈谈oozie对其属性命名的要求:

- Properties that are a valid Java identifier, [A-Za-z_][0-9A-Za-z_]* , are available as ‘${NAME}‘ variables within the workflow definition.

- **Properties that are not valid Java Identifier, for example ‘job.tracker‘**, are available via the String wf:conf(String name) function.

是的,看上去也是有点奇葩的规定了,对于Oozie的属性名,只允许 使用数字、字母和下滑线,类似于job.tracker这样的属性名是非法的!

时间: 2024-08-04 22:16:32

Oozie工作流属性配置的方式与策略的相关文章

修改浏览器属性配置的作用---开发机上解决跨域的方式

开发阶段解决跨域问题,可以通过修改浏览器属性配置,来关闭浏览器的同源策略保护机制,从而实现解决跨域问题,有下面三种方式:1. MAC系统,终端输入代码段 "open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/admin/MyChromeDevUserData/" 2.window系统,cmd输入代码段 "C:\Program Files (

高可用Hadoop平台-Oozie工作流

1.概述 在开发Hadoop的相关应用使用,在业务不复杂,任务不多的情况下,我们可以直接使用Crontab去完成相关应用的调度.今天给大家介绍的是统一管理各种调度任务的系统,下面为今天分享的内容目录: 内容介绍 Oozie Server 截图预览 下面开始今天的内容分享. 2.内容介绍 今天的内容不涉及Oozie的具体细节操作,它的工作流程在下一篇博客为大家详细介绍.今天主要给大家分享Oozie的作用,它的集成步骤等内容. 2.1 作用 Oozie它是一个开源的工作流调度系统,它可以管理逻辑复杂

学习Spring-Data-Jpa(二十一)---DataSource与JPA属性配置

1.SpringBoot 2.2.x默认使用的DataSource SpringBoot 2.2.x版本,默认使用的DataSource是HikariCP,可以直接通过注入DataSource,并打印出打印全限定名,可以查看. 或可以通过查看自动配置源码,来找到: @SpringBootApplication -> @EnableAutoConfiguration 所在jar包的META-INF/spring.factories中可以找到org.springframework.boot.auto

Linux网络属性配置

Linux网络属性配置 IP(Internet protocol)地址: 网络号+主机号 IPv4:32bits 8bits 8bits 8bits 8bits 0-255 0.0.0.0-255.255.255 IP地址分类: A类: 第一段为网络号,后三段为主机号 网络号 0固定 000 0000-0 111 1111 : 网络数量: 1-127 每个网络中的主机数量:2^24 -2 (全0,全1) 主机全0表示网络本身地址, 全1表示所有主机广播地址地址 默认子网掩码:255.0.0.0

【linux相识相知】网络属性配置

当我们拥有一个崭新的计算机的时候,第一步恐怕都是迫不及待的下载各种软件,看视频,听音乐等,这里的关键的一点是要有网络.现在的个人计算机大部分都是windows操作系统的,接入网络网络很简单,插上网线也许就能上网了,最麻烦不过找到网络和共享中心手动配置一个ip地址.网关地址和dns服务器就能上网了,当然这都是得益于图形化界面.但是现在很多的服务器都是linux操作系统且没有图形化的界面,这时候我们就需要了解怎样正确的给linux主机配置网络属性了,本次博客就来说说以正确的方式打开linux操作系统

Linux网络属性配置详解

一.网络属性概述 在计算机网络中,某台主机要想接入网络实现通信的话,一般要配置IP地址.子网掩码.网关.DNS服务器地址等属性.其中IP地址是主机在互联网上的逻辑地址,通过IP地址可定位互联网上的某一台主机以实现网络的三层通信:而子网掩码与IP地址按位进行"与"运算得到主机所在网段地址,可快速确定用户主机所在网络(网段).配置了IP地址和子网掩码,就可以实现本地通信了,此外实现本地通信还需要主机的MAC地址,因为IP地址之间的通信最终要映射到MAC地址才能完成,而MAC地址一般在厂商生

Spring框架笔记(四)——Spring容器的属性配置详解的六个专题

在spring IOC容器的配置文件applicationContext.xml里,有一些配置细节值得一提.我们将一些问题归结为以下几个专题. 专题一:字面值问题 配置的bean节点中的值,我们提出一个概念--字面值. 字面值:可用字符串表示的值. 字面值可以通过 <value> 元素标签或 value 属性进行注入. 基本数据类型及其封装类.String 等类型都可以采取字面值注入的方式 若字面值中包含特殊字符,可以使用 <![CDATA[]]> 把字面值包裹起来. 例如:(本文

Spark1.0.0属性配置

1:Spark1.0.0属性配置方式 Spark属性提供了大部分应用程序的控制项,并且可以单独为每个应用程序进行配置. 在Spark1.0.0提供了3种方式的属性配置: SparkConf方式 SparkConf方式可以直接将属性值传递到SparkContext: SparkConf可以对某些通用属性直接配置,如master使用setMaster,appname使用setAppName: 也可以使用set()方法对属性进行键-值对配置,如set("spark.executor.memory&qu

Spring Boot 属性配置和使用

spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot 系列 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring Boot 静态资源处理 Spring Boot - 配置排序依赖技巧 Spring Boot - DevTools 介绍 Spring Boot 支持多种外部配置方式 这些方式优先级如下: 命令行参数 来