概念引入
一个任务可能涉及到很多个作业1,2,3,4。若作业1完成后的结果给到作业2,作业2和作业1的结果又给到作业3程序进行操作,2和3运行完的结果再给到下一个作业进行运行操作。这样下来费时耗力,因此,oozie被提出,能够把多个作业组合为一个逻辑工作单元(一个工作流),从而自动完成任务调用的工具。
简介
- 四大调度框架之一:数据转换工具Sqoop,文件收集库框架Flume,大数据WEB工具Hue,任务调度框架Ooize
- 可提供对Haddoop、MapReduce和Pig Jobs的任务调度与协调,需要部署到Java Servlet容器中运行
- 三大功能模块:Workflow(工作流:对要进行的顺序化工作抽象,支持fork【分之多个节点】,join【合并多个节点为一个】)、Coordinator(协调器:对要进行的顺序化的Workflow抽象,定时触发workflow)、Bundle Job(捆,汇总处理,对一堆Coordinator抽象)
- 常用节点:控制流节点(一般定义在工作流开始或者结束的位置,如:start,end,kill等)和动作节点(负责执行具体动作的节点,如:拷贝文件,执行某个shell脚本等)
- Oozie工作流的三个动作:ingestor、mergeLidar和mergeSignage。并把每个动作都实现为Map/Reduce作业。这个工作流从start节点开始,然后把控制权交给Ingestor动作。一旦ingestor步骤完成,就会触发fork控制节点,它会并行地开始执行mergeLidar和mergeSignage。这两个动作完成之后,就会触发join控制节点。join节点成功完成之后,控制权就会传递给end节点,它会结束这个过程。
- Oozie工作流是放在控制依赖有向无环图中的一组动作,其中指定了动作的执行顺序。
- Oozie客户端API以及命令行界面可以用来启动,控制和监视Java应用程序作业,其运作为集群服务
Oozie安装前提准备:
- 安装虚拟机VMware-workstation-full-12.5.7.20721.exe,安装过程参考软件安装管家公众号
- 在虚拟机中安装Ubuntu16.04,安装过程参照https://baijiahao.baidu.com/s?id=1606031374516979702&wfr=spider&for=pc,如果开不开,将链接地址直接复制到浏览器中打开
- 安装mysql,在虚拟机下的Ubuntu16.04进行安装,过程参照https://blog.csdn.net/james_nan/article/details/82053430
- 在虚拟机中安装jdk,直接用命令安装无法找到几个安装包,失败。
- 首先,将win10系统的文件共享到ubuntu中,过程如https://jingyan.baidu.com/article/54b6b9c0b6a4cd2d583b47eb.html和https://www.cnblogs.com/xiangyangzhu/p/shareFolder.html,其中有问题的点如下:执行cd /tmp进入到tmp,tmp文件在计算机中可以找到;执行cd vmware-tools-distrib,进入到vmware-tools-distrib文件夹中; 安装过程中一直按enter键,所有默认安装,直至安装成功,如果报错则用sudo命令再次执行;
- 安装jdk。解压报错,则以su root进入;cd jdk文件所在文件夹如:cd /mnt/hgfs/jdk-8u211-linux-x64.tar.gz;https://blog.csdn.net/harryptter/article/details/81176648
- 最终jdk安装参考https://zhidao.baidu.com/question/1865685033952042667.html
- 安装Hadoop,安装过程参照https://blog.csdn.net/yz930618/article/details/77418241,其中报错Error: JAVA_HOME is not set and could not be found,解决方法(添加JavaHome):export JAVA_HOME=/usr/java/jdk1.6.0_45