Oozie分布式工作流——EL表达式】的更多相关文章

oozie支持使用EL(expression language)表达式. 基本的EL常量 KB MB GB TB PB 基本EL函数 string firstNotNull(String value1,String value2) 返回第一个不为空的值,如果都为null,则返回null string concat(String s1,String s2) 拼接两个字符串,如果一个为null,拼接的字符串为空 string replaceAll(String src,String regex,St…
前篇讲述了下什么是流控制节点,本篇继续来说一下什么是 Action Nodes操作节点.Action节点有一些比较通用的特性: Action节点是远程的 所有oozie创建的计算和处理任务都是异步的,没有任何应用是工作在oozie内部的.基本上都是创建一个oozie任务,oozie任务会以map的形式,在各个节点再创建相应的任务.因此当你执行spark任务的时候,就会发现yarn集群监控列表里面会同时有两个任务出现. Action节点是异步的 oozie创建的任务都是异步的,对于大多数的任务来说…
Oozie支持Java Action,因此可以自定义很多的功能.本篇就从理论和实践两方面介绍下Java Action的妙用,另外还涉及到oozie中action之间的参数传递. 本文大致分为以下几个部分: Java Action教程文档 自定义Java Action实践 从源码的角度讲解Java Action与Shell Action的参数传递. 如果你即将或者想要使用oozie,那么本篇的文章将会为你提供很多参考的价值. Java Action文档 java action会自动执行提供的jav…
EL表达式: 常量表示形式 含义说明 ${coord:minutes(int n)} 返回日期时间:从一开始,周期执行n分钟 ${coord:hours(int n)} 返回日期时间:从一开始,周期执行n * 60分钟 ${coord:days(int n)} 返回日期时间:从一开始,周期执行n * 24 * 60分钟 ${coord:months(int n)} 返回日期时间:从一开始,周期执行n * M * 24 * 60分钟(M表示一个月的天数) ${coord:endOfDays(int…
最近又开始捅咕上oozie了,所以回头还是翻译一下oozie的文档.文档里面最重要就属这一章了--工作流定义. 一提到工作流,首先想到的应该是工作流都支持哪些工作依赖关系,比如串式的执行,或者一对多,或者多对一,或者条件判断等等.Oozie在这方面支持的很好,它把节点分为控制节点和操作节点两种类型,控制节点用于控制工作流的计算流程,操作节点用于封装计算单元.本篇就主要描述下它的控制节点... 背景 先看看oozie工作流里面的几个定义: action,一个action是一个独立的任务,比如map…
在大数据的当下,各种spark和hadoop的框架层出不穷.各种高端的计算框架,分布式任务如乱花般迷眼.你是否有这种困惑!--有了许多的分布式任务,但是每天需要固定时间跑任务,自己写个调度,既不稳定,又没有可靠的通知. 想要了解Oozie的基础知识,可以参考这里 那么你应该是在找--Oozie. Oozie是一款支持分布式任务调度的开源框架,它支持很多的分布式任务,比如map reduce,spark,sqoop,pig甚至shell等等.你可以以各种方式调度它们,把它们组成工作流.每个工作流节…
继前一篇大体上翻译了Email的Action配置,本篇继续看一下Shell的相关配置. Shell Action Shell Action可以执行Shell脚本命令,工作流会等到shell完全执行完毕后退出,再执行下一个节点.为了运行shell,必须配置job-tracker以及name-node,并且设置exec来执行shell. Shell既可以使用job-xml引用一个配置文件,也可以在shell action内直接配置.shell action中的配置会覆盖job-xml中的配置. EL…
Sqoop的使用应该是Oozie里面最常用的了,因为很多BI数据分析都是基于业务数据库来做的,因此需要把mysql或者oracle的数据导入到hdfs中再利用mapreduce或者spark进行ETL,生成报表信息. 因此本篇的Sqoop Action其实就是运行一个sqoop的任务而已. 同样action会等到sqoop执行成功后,才会执行下一个action.为了运行sqoop action,需要提供job-tracker,name-node,command或者arg元素. sqoop act…
分布式工作流任务调度系统Easy Scheduler正式开源 1.背景 在多位技术小伙伴的努力下,经过近2年的研发迭代.内部业务剥离及重构,也经历一批种子用户试用一段时间后,EasyScheduler终于迎来了第一个正式开源发布版本 -- 1.0.0. 相信做过数据处理的伙伴们对开源的调度系统如oozie.azkaban.airflow应该都不陌生,在使用这些调度系统中可能会有这样的体验:比如配置工作流任务不能可视化.任务的运行状态不能实时在线查看. 任务运行时不能暂停.不能支持参数传递.不能补…
今天在写一个springmvc的小demo时,碰到一个问题,在jsp页面中书写为${user.username}的表达式语言,在浏览器页面中仍然显示为${user.username},说明jsp根本不认识${}标签,摸索了一下,发现我的web.xml中声明的是 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd…
El表达式的关系运算符: ==  对应  eq !=   对应  ne >    对应  gt <    对应  It…
一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据.(某个web域 中的对象,访问javabean的属性.访问list集合.访问map集合.访问数组) 2.执行运算 利用EL表达式可以在JSP页面中执行一些基本的关系运算.逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算.${user==null} 3.获取web开发常用对象 EL 表达…
一个例子--乘法运算 ${book.bookCount * book.bookPrice } 两个不同对象的EL表达式的算术运算同理 ${student.studentNum * book.bookPrice } 其他算数运算等同…
1.<%@ page isELIgnored="false" %> 是否忽略EL表达式,如果值为ture,那么  ${..}这样的会直接原样输出,不会进行EL表达式计算.…
很多时候,在JSP中我们喜欢用EL表达式输出信息,但是最近发现这个确实存在个问题:XSS即跨域攻击. 下面看个例子: <c:out value="${student.name}" />  和 ${student.name}都能输出同样的结果. 但是有跨域攻击时student.name = <script>alert("hello world!")</script>,${student.name}将会执行,而c:out则不会. 原因…
JavaWeb:EL表达式 说明 1.Expression Language语言,一种用于JSP文件中的数据访问的语言. 2.能够简化JSP文件中该数据访问的代码,可用来替代传统的基于<%= %>和部分<% %>的程序片段. 3.EL表达式使得JSP文件的创建人员能够用更加简单的语法来访问数据. 4.基本形式为: ${var} EL运算符 (来自孤傲苍狼) 1.关系运算符 2.逻辑运算符:…
el表达式是jsp内置的表达式语言,jsp从jsp2.0开始,就不再提倡使用java脚本,而是用el表达式和动态标签来替代,而el表达式主要替代的是jsp中的<%=....%>,也就是说el表达式只做输出. EL表达式来读取四大域: ${xxx} :      全域查找名为xxx的属性,如果不存在,输出空字符串,而不是null ${pageScpoe.xxx},${requestScpoe.xxx},${sessionScpoe.xxx},${applicationScpoe.xxx} 查找指…
(-1)写在前面 这两天读<javaweb开发王者归来>,学到Spring的PropertyPlaceholderConfigurer时出现一个问题,我已${jdbc.name}的形式赋值给bean中的属性,用main方法测试后,输出属性的值仍然是${jdbc.name}. (0)解决问题之路 a.我先想到是不是打错了,于是和书上仔细的对照了一下,发现书上说的是PropertyOverrideConfigurer,但实际上配置文件中写的是PropertyPlaceholderConfigure…
一.前言 EL表达式是什么? 简而言之,可以这样理解,EL表达式全名为:Exprexxsion Language,原先是JSTL 1.0为了方便存取数据而定义的语言,到了JSTL 2.0便正式成为标准之一.EL表达式的引入可以简化jsp页面中的java代码,方便存取数据等优点.提供了表示层和应用程序通信的一种机制 EL表达式的作用有: 1.获取数据 EL表达式替换jsp页面中的java代码,可以从各种类型的WEB域对象中检索java对象,获取数据, 2.执行运算 EL表达式支持逻辑运算和算术运算…
/* **Title:EL表达式和JSTL表达式实例 **Author:Insun **Blog:http://yxmhero1989.blog.163.com/ */ 为了方便写JSP,我们引入了EL和JSTL表达式 EL表示类似:<%=request.getAttribute("info")%> JSTL类似: <table border=1> <tr><td>ID</td><td>用户名</td>…
缘由 El表达式在调用Map的时候,后台传过来的Map的key不一定是一个固定的值,需要根据另外一个对象的id作为key来put,或者更加复杂的组合id+"string"作为一个key,对于平常使用开固定的key的我来说,以前学过也忘记了,一时想不出怎么做,现在我们来复习一下. 情景 假设有一个情景:我们后台返回一个对象的list,我们根据对象的id作为key放一些关键的值作为value存入Map中.而前台负责显示Map中的关键指标. @RequestMapping(value=&qu…
使用EL表达式时,遇到了页面直接显示"time: ${requestScope.time}",不解析的情况.查找资料原因是:在默认情况下,Servlet 2.3 / JSP 1.2是不支持EL表达式的,而Servlet 2.4 / JSP 2.0支持.刚好我使用Maven创建的webapp项目,web.xml里就是2.3版本的: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Applicatio…
<%@page import="cn.jiemoxiaodi.domain.Person"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() +…
1,jsp是用来干嘛的? JSP技术是用来解决在Servlet中需要书写大量的拼接html标签.以及框架的代码 2,jsp的三种脚本元素 a.JSP的脚本声明(定义) 格式: <%! 书写Java代码 %> 脚本声明: 定义的java代码翻译完之后,相当于类中的成员. b.JSP的脚本表达式 作用:他被翻译后保存在java程序的service方法中,使用print写到页面上 c.脚本表达式 在书写java代码的时候,可以把java代码隔开,在隔开的位置中可以加入html代码 我们书写的JSP文…
JSP      * 概述: JSP(Java Server Pages)与Java Servlet一样,是在服务器端执行的不同的是先由服务器编译部署成Servlet执行      * JSP的运行原理           * JSP -- 翻译servlet文件 --  编译.class -- 执行 * JSP脚本元素 <%! int x = 0; %> :定义全局变量 x=0 <%=x %> :输出全局变量 <% x=5; %> :改变全局变量x=5 <% i…
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl…
js 中使用el表达式 关键总结:在js中使用el表达式一定要加双引号 js控制中用到了el表达式,最开始源码如下: var selected = ${requestScope.xxxxForm.recordNumPerPage} 这样始终js错误,因为在第一次的时候requestScope.xxxxForm.recordNumPerPage为null.于是在boss的指导下,简单的加了两个引号,代码变成 var selected = "${requestScope.xxxxForm.recor…
在JSP页面中嵌入了一部分Java代码,本以为Java代码中声明的变量可以通过${var}获得变量值输出,结果没有任何输出, EL表达式是用在对对象值.属性制的访问 ${user.id}.request.session.pageContext.application属性值的访问以及自定义函数的使用上 这些对象user 都是属于作用域范围对象 或者pageContext 以及环境信息的隐含对象 在访问属性值的时候 如果不指明属性所属的隐含对象 则从作用域范围内查找属性值 el表达式获取list集合…
最近做项目时发现原来对EL表达式理解太浅,通过一个springMVC项目,加深了对其的理解,下面总结一下,如发现有不对之处,请批评指正: 1.在单独的js文件中,EL表达式无效,如:var type="${type}",此时type获取的值就为字符串“${type}”,而并非后台type指向的值:非要单独的JS文件中获取El值的话,可在jsp中定义一个全局变量var type,且加上$(function(){ type="${type}" }):此时在单独的JS文件…
Jsp的指令之include指令include指令:代表的是页面的包含. 作用:可以把一些jsp的页面包含在一起,对外展示. 页面的布局,现在已经不用了,现在都用css+div进行布局.include的语法 <%@ include file="要包含的页面" %> 比方说/personal/WebContent/jsp/base/tag.jsp需要引入tag.jsp,则<%@ include file="/jsp/base/tag.jsp" %&g…