看到一篇博客感觉不错! http://blog.csdn.net/youzhouliu/article/details/52384112
============================OOZIE===========================================================
1.
• Oozie是用于 Hadoop 平台的开源的工作流调度引擎。
• 用来管理Hadoop作业。
• 属于web应用程序,由Oozie client和Oozie Server两个组件构成。
• Oozie Server运行于Java Servlet容器(Tomcat)中的web程序。
2. 作用:
– 统一调度hadoop系统中常见的mr任务启动、 hdfs操作、 shell调度、 hive操作等
– 使得复杂的依赖关系、时间触发、事件触发使用xml语言进行表达,开发效率提高
– 一组任务使用一个DAG(有向无环图)来表示,使用图形表达流程逻辑更加清晰
– 支持很多种任务调度,能完成大部分hadoop任务处理
– 程序定义支持EL常量(EL表达式)和函数,表达更加丰富
3.一个Coordinator可以管理多个workflow,一个bundle可以管理多个coordinator!
4.Oozie CLI 命令
• 启动任务:
– oozie job -oozie http://ip:11000/oozie/ -config job.properties –run(启动oozie会返回一个唯一标识id,启动任务其实就是:提交任务并开始任务)
• 停止任务:
– oozie job -oozie http://ip:11000/oozie/ -kill 0000002-150713234209387-oozie-oozi-W(启动oozie时返回的那个唯一标识id)
• 提交任务:
– oozie job -oozie http://ip:11000/oozie/ -config job.properties –submit(提交单不是执行任务哦,提交任务的时候会返回一个任务id)
• 开始任务:
– oozie job -oozie http://ip:11000/oozie/ -config job.properties –start 0000003-150713234209387-oozie-oozi-W
• 查看任务执行情况:
– oozie job -oozie http://ip:11000/oozie/ -config job.properties –info 0000003-150713234209387-oozie-oozi-W
===================================重要===============================================================
5.• Job配置 job.properties
nameNode hdfs :地址
jobTracke jobTracker地址 (Hadoop2.x resourcemanager:8032)
queueName oozie队列( default)
examplesRoot 全局目录( examples)
oozie.usr.system.libpath 是否加载用户lib目录( true/false),项目的依赖包,这里设置为true
oozie.libpath 用户lib库 (这里指定jar包上传到HDFS上的目录)
oozie.wf.appication.path oozie流程所在hdfs地址( workflow.xml在HDFS上存放的路径)
user.name 当前用户
coordinator:
oozie.coord.application.path coordinator.xml地址
bundle:
oozie.bundle.application.path bundle.xml地址
6.workflow.xml放在HDFS上,job.properties文件放在本地就行!(=========================注意哦===============================)
7.workflow的版本不要比oozie的版本高哦!
===================================重要===============================================================
8.EL函数
基本的EL函数
• String firstNotNull(String value1, String value2)
• String concat(String s1, String s2)
• String replaceAll(String src, String regex, String replacement)
• String appendAll(String src, String append, String delimeter)
• String trim(String s)
• String urlEncode(String s)
• String timestamp()
• String toJsonStr(Map) (since Oozie 3.3)
• String toPropertiesStr(Map) (since Oozie 3.3)
• String toConfigurationStr(Map) (since Oozie 3.3)
– WorkFlow EL
• String wf:id() – 返回当前workflow作业ID
• String wf:name() – 返回当前workflow作业NAME
• String wf:appPath() – 返回当前workflow的路径
• String wf:conf(String name) – 获取当前workflow的完整配置信息
• String wf:user() – 返回启动当前job的用户
• String wf:callback(String stateVar) – 返回结点的回调URL,其中参数为动作指定的退出状态
• int wf:run() – 返回workflow的运行编号,正常状态为0
• Map wf:actionData(String node) – 返回当前节点完成时输出的信息
• int wf:actionExternalStatus(String node) – 返回当前节点的状态
• String wf:lastErrorNode() – 返回最后一个ERROR状态推出的节点名称
• String wf:errorCode(String node) – 返回指定节点执行job的错误码,没有则返回空
• String wf:errorMessage(String message) – 返回执行节点执行job的错误信息,没有则返回空
– HDFS EL
• boolean fs:exists(String path)
• boolean fs:isDir(String path)
• long fs:dirSize(String path) – 目录则返回目录下所有文件字节数;否则返回-1
• long fs:fileSize(String path) – 文件则返回文件字节数;否则返回-1
• long fs:blockSize(String path) – 文件则返回文件块的字节数;否则返回-1
9、节点
– A、流程控制节点
• start – 定义workflow开始
• end – 定义workflow结束
• decision – 实现switch功能
• sub-workflow – 调用子workflow
• kill – 杀死workflow
• fork – 并发执行workflow
• join – 并发执行结束(与fork一起使用)
– B、动作节点
• shell(用的比较多)
• java(用的比较多)
• fs(用的比较多)
• MR
• hive
• sqoop
10、oozie,hive底层都是MapReduce,所以出了问题看日志就好!