互联网的发展速度令人咂舌,基本上每年都会出现一批新的事物。大数据概念在前几年就被提出,而在2018年随着人工智能、物联网等快速发展,大数据的魅力也开始真正的展现出来。
市场对于大数据人才的需求越来越多,很多人开始步入到学习大数据的领域。对于大数据的学习,自然无法避开Oozie,所以我们不妨来系统的认识一下什么是Oozie,Oozie的应用场景有哪些?
关于什么是Oozie,其实Oozie是服务于Hadoop生态系统的工作流调度工具,Job运行平台是区别于其他调度工具的最大的不同。但其实现的思路跟一般调度工具几乎完全相同。Oozie工作流通过HPDL(一种通过XML自定义处理的语言,类似JBOSS JBPM的JPDL)来构造。Oozie工作流中的Action在运程系统运行如(Hadoop,Pig服务器上)。一旦Action完成,远程服务器将回调Oozie的接口 并通知Action已经完成,这时Oozie又会以同样的方式执行工作流中的下一个Action,直到工作流中所有Action都完成(完成包括失败)。Oozie工作流提供各种类型的Action用于支持不同的需要,如Hadoop Map/Reduce,Hadoop File System,Pig,SSH,HTTP,Email,Java以及Oozie子流程。Oozie也支持自定义扩展以上各种类型的Action。
一个正常工作的Oozie系统须包含如下四个模块:Oozie Client、Oozie Server、DataBase和Hadoop集群。
Oozie Client可以通过Web Service API、Java API、Command line 方式向Oozie Server提交工作流任务请求。Oozie客户端可以通过REST API或者Web GUI来从Oozie服务端获取Job的日志流。通常在Client端包括工作流配置文件、工作流属性文件和工作流库。
Oozie Server负责接收客户端请求、调度工作任务、监控工作流的执行状态。Oozie本身不会执行具体的Job,而是将Job的配置信息发送到执行环境。
DataBase用于存储Bundle、Coordinator、Workflow工作流的Action信息、Job信息,记录Oozie系统信息。简单说,除了Oozie 运行日志存在本地硬盘不存在DB中,其他信息都存储到DB。
Hadoop集群运行Oozie工作流的实体,负责处理Oozie Server提交来的各种Job。包括HDFS、MapReduce、Hive、Sqoop等Hadoop组件提交的Job。
讲了这么多关于Oozie的概念,下面我们来了解一下Oozie 是如何工作的?
Oozie 运行作为集群服务,客户端提交的工作流定义:立即或以后处理。Oozie 工作流由动作节点和控制流的节点组成。一个操作节点代表一个工作流任务,例如,移动文件到HDFS,运行 MapReduce,Pig 或 Hive 作业,使用 Sqoop 导入数据或 运行Java 编写程序的 shell 脚本。一个控制流节点通过允许像条件逻辑结构,不同的分支可以根据较早动作节点的结果,随后执行动作工作流程。
开始节点,终端节点和错误节点属于这一类节点。
开始节点, 指定的工作流程作业的开始。
结束节点, 作业的结束信号。
错误节点, 指定要打印错误和相应的错误信息的发生。
在执行工作流的结束, HTTP 回调用于通过 Oozie 更新客户端与工作流状态。入门或出口,从动作节点还可能会触发回调。工作流程图示例如下:
Oozie只是大数据内容的一个,对于学习大数据的人而言,学好这一点非常重要,未来大数据的应用必将深入到各个领域当中,而你如果能够掌握大数据的每一个知识点,那么你必将会成为大数据界的大牛,高薪、高福利也将随之而来。
热门评论
可以