2024-02-28(Kafka,Oozie,Flink)

1.Kafka的数据存储形式

一个主题由多个分区组成

一个分区由多个segment段组成

一个segment段由多个文件组成(log,index(稀疏索引),timeindex(根据时间做的索引))

2.读数据的流程

消费者的offset是一个针对分区的全局offset

可以根据这个offset找到segment段

接着需要将全局offset转换成segment的局部offset

根据局部offset,就可以从(.index稀疏索引)找到对应的数据位置

开始顺序读取

3.Oozie的概念

        Oozie是用来管理Hadoop生态圈Job的工作流调度系统,运行于Java Servlet容器上的一个Java Web应用,Oozie是按照DAG(有向无环图)的顺序调度一系列的Map/Reduce或者Hive等任务。Oozie由hPDL(Hadoop Process Definition Language)定义(XML格式的语言)。使用场景包括:需要按照顺序进行一系列任务;并行处理的任务;定时和周期触发的任务;可视化作业流运行过程;运行结果或异常的通报。

4.Oozie的架构

Oozie Client:提供命令行(CLI),Java API,rest等方式,对Oozie的工作流流程的提交,启动,运行等操作。

Oozie Web:Oozie Server,本质是一个Java应用,可以使用内置的Web容器,也可以使用外置的Web容器。

Hadoop Cluster:底层执行Oozie编排流程的各个Hadoop生态圈组件。

Oozie各种任务的提交底层都是依赖于MR程序

5.Oozie的基本原理

        Oozie对于工作流的编排,是基于workflow.xml文件来完成的。用于预先将工作流执行规则定制于workflow.xml文件中,并在job.properties配置相关的参数,然后由Oozie Server向MR提交job来启动工作流。

流程节点:

ControlFlowNodes:控制工作流执行路径,包括start,end,kill,decision,fork,join。

Action Nodes:决定每个操作执行的任务类型,包括MapReduce,Java,hive,shell等。

举例:

6.Oozie工作流类型:

1)WorkFlow:规则相对简单,不涉及定时,批处理的工作流。顺序执行节点

缺点:没有定时和条件触发功能。

2)Coordinator

        Coordinator将多个工作流Job组织起来,成为Coordinator Job,并制定触发时间和频率,还可以配置数据集,并发数等,类似于在工作流外部增加了一个协调器来管理这些工作流的工作流Job的运行。

3)Bundle

        针对coordinator的批处理工作流。Bundle将多个coordinator管理起来,这样我们只需要一个Bundle提交即可。

6.Oozie官方自带了许多案例,里面封装了各种类型任务的配置模板

所以后续可以根据官方给的这些配置模板进行修改就好。

7.感觉很多中间件的使用就是配置好配置文件即可。在使用层面组件帮我们做了很多事

8.Oozie调度流程

1)根据官方自带的示例编写配置文件

job.properties  workflow.xml

2)把任务配置信息连同依赖的资源一起上传到hdfs指定的路径,这个路径在配置中有

3)利用Oozie的命令进行提交

9.Oozie任务串联

        在实际工作中,肯定会存在多个任务需要执行,并且存在上一个任务的输出的结果作为下一个任务的输入数据这样的情况,所以我们需要在workflow.xml配置文件当中配置多个action,实现多个任务之间的相互依赖关系。

比如:先执行一个shell脚本,执行完了之后再执行一个MR的程序,最后再执行一个hive程序。

其实就是依靠workflow.xml配置文件来控制好节点的流程

10.Oozie定时调度

        主要是通过coordinator来实现任务的定时调度,Coordinator模块主要通过xml来配置即可。

有两种调度方式:1)基于时间的定时任务调度;2)基于数据的任务调度。

11.Hue集成Oozie

背景:Oozie本身的开发不是很友好,不论是调度Hive程序还是调度MapReduce程序,都要编写大量的配置文件,然后做上传提交,再执行,比较麻烦。

Hue可以实现鼠标拖拽的办法来实现Oozie所支持的所有功能。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Flink

12.Flink支持所有的流式计算

13.Flink的发展

第 1 代:Hadoop MapReduc 批处理 Mapper、Reducer 2;

第 2 代:DAG 框架(Oozie 、Tez),Tez + MapReduce 批处理 1 个 Tez = MR(1) + MR(2) + ... + MR(n) 相比 MR 效率有所提升;

第 3 代:Spark 批处理、流处理、SQL 高层 API 支持 自带 DAG 内存迭代计算、性能较之前大幅提;

第 4 代:Flink 批处理、流处理、SQL 高层 API 支持 自带 DAG 流式计算性能更高、可靠性更高。

14.什么是Flink

Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink 被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。

15.什么是批处理和流处理

        批处理的特点是有界、持久、大量,批处理非常适合需要访问全套记录才能完成的计算工作,一般用于离线统计。流处理的特点是无界、实时,流处理方式无需针对整个数据集执行操作,而是对通过系统传输的每个数据项执行操作,一般用于实时统计。

        在 Spark 生态体系中,对于批处理和流处理采用了不同的技术框架,批处理由 SparkSQL 实现,流处理由 Spark Streaming 实现,这也是大部分框架采用的策略,使用独立的处理器实现批处理和流处理,而 Flink 可以同时实现批处理和流处理

        Flink 是如何同时实现批处理与流处理的呢?答案是,Flink 将批处理(即处理有限的静态数据)视作一种特殊的流处理

        上图为 Flink 技术栈的核心组成部分,值得一提的是,Flink 分别提供了面向流式处理的接口(DataStream API)和面向批处理的接口(DataSet API)。因此,Flink 既可以完成流处理,也可以完成批处理。Flink 支持的拓展库涉及机器学习(FlinkML)、复杂事件处理(CEP)、以及图计算(Gelly),还有分别针对流处理和批处理的 Table API。

16.Flink的四种运行模式

1)local模式

原理:在本地模拟多线程去模拟Flink中的各个角色。

2)StandAlone独立集群模式

原理:

3)Standalone-HA高可用集群模式

原理:

前面的架构中存在Job Manager有单点故障的风险,Job Manager担任任务调度和资源分配,它出现故障很危险。因此。

4)Flink-On-Yarn

原理:

为什么使用flink on yarn:

a.公司资源有限,大多数有Hadoop系统,节约资源;

b.yarnd的资源可以按需使用,提高集群的资源利用率;

c.yarn的任务有优先级,根据优先级运行作业;

d.基于yarn调度系统,能够自动化的处理各个角色的failover(容错):

        d.1 JobManager进程和TaskManagerj进程都由Yarn NodeManager 监控

        d.2 如果JobManager进程异常退出,则Yarn RecourseManager 会重新调度JobManager到其他机器

        d.3 如果TaskManager 进程异常退出,JobManager 会收到消息并重新向Yarn RecourseManager 申请资源,重新启动TaskManager。

16.Flink on yarn的两种模式

1)Session模式(Session会话模式):在Yarn集群中启动了一个Flink集群,并重复使用该集群

特点:需要事先申请资源,启动JobManager和TaskManager

优点:不需要每次提交作业申请资源,而是使用已经申请好的资源,,从而提高执行效率

缺点:作业执行完之后,资源不会被释放,因此会一直占用系统资源

应用场景:适合作业提交比较频繁的场景,小作业比较多的场景

2)Per-Job模式(Job分离模式)(用的多):针对每个Flink任务都去启动一个独立的Flink集群,用完就关,不能重复使用该集群

特点:每次提交作业都需要申请一次资源

优点:作业运行完成,资源会立即释放,,不会一直占用系统资源

缺点:每次提交作业都需要申请资源,会影响执行效率,因为申请资源需要消耗时间

应用场景:适合作业比较少,大作业的场景。

17.Flink应用程序的编程模型

eg:

18.Flink中应用编程使用DataStream API,弃用DataSet API。

注意:在Flink1.12中,DataSteam既支持流处理也支持批处理。在后续开发中,把一切的数据源看作即可。(批也可以看成流)

Flink保姆级教程,超全五万字,学习与面试收藏这一篇就够了_flink 教程-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/415733.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Laravel - API 项目适用的图片验证码

1. 安装 gregwar/captcha 图片验证码接口的流程是: 生成图片验证码 生成随机的 key,将验证码文本存入缓存。 返回随机的 key,以及验证码图片 # 不限于 laravel 普通 php 项目也可以使用额 $ composer require gregwar/captcha2. 开发接口 …

51单片机(6)-----直流电机的介绍与使用(通过独立按键控制电机的运行)

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。 目录 一. 直流电机模块介绍 1.直流电机介绍 2.电机参数 二. 程序设计…

Oracle 直接路径插入(Direct-Path Insert)

直接路径插入(Direct Path Insert)是Oracle一种数据加载提速技术,可以在使用insert语句或SQL*Loader工具大批量加载数据时使用。直接路径插入处理策略与普通insert语句完全不同,Oracle会通过牺牲空间,安全性&#xff0…

防御保护:防火墙内容安全

一、IAE(Intelligent Awareness Engine)引擎 二、深度检测技术(DFI和DPI) 1.DPI – 深度包检测技术 DPI主要针对完整的数据包(数据包分片,分段需要重组),之后对数据包的内容进行识别。&#x…

2024年阿里云2核4G云服务器性能如何?价格便宜有点担心

阿里云2核4G服务器多少钱一年?2核4G服务器1个月费用多少?2核4G服务器30元3个月、85元一年,轻量应用服务器2核4G4M带宽165元一年,企业用户2核4G5M带宽199元一年。本文阿里云服务器网整理的2核4G参加活动的主机是ECS经济型e实例和u1…

第三节-docker-cs架构分析

一、组成 docker engine:docker-client、rest-api、dockerd containerd: 1、管理容器生命周期 2、拉取/推送镜像 3、存储管理 4、调用runc 5、管理网络 containerd-shim:相当于一个驱动,containerd通过containerd-shim驱使…

SpringCloudNacos配置管理及热更新

文章目录 统一配置管理在nacos中添加配置文件从微服务拉取配置配置热更新方式1方式2 配置优先级 之前对 Nacos注册中心入门 已经做了演示. 这篇文章对 Nacos 的服务分级存储模型做理论与实践. 本篇文章阐述 Nacos 做配置中心的理论和实践. 统一配置管理 当微服务部署的实例越…

Vue NextTick工作原理及使用场景

$nextTick的定义及理解: 定义:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。 所以就衍生出了这个获取更新后的DOM的Vue方法。所以放在Vue.nextTick()回调函数中的执行的应该是会对DOM进行操…

热点参数流控(Sentinel)

热点参数流控 热点流控 资源必须使用注解 SentinelResource 编写接口 以及 热点参数流控处理器 /*** 热点流控 必须使用注解 SentinelResource* param id* return*/ RequestMapping("/getById/{id}") SentinelResource(value "getById", blockHandler …

Media Encoder 2024 for Mac v24.2.1中文激活版

Adobe Media Encoder 2024 for Mac 是一款专业的视频和音频编码工具,专为 Mac 用户打造。它可以将原始素材转换为各种流行格式,以满足不同的播放和发布需求。借助其先进的编码技术和预设设置,用户可以轻松优化输出质量,同时保持文…

森林监测VR虚拟情景再现系统更便利

AI人工智能技术已经逐渐渗透到各个领域,为我们的生活带来了诸多便利。在虚拟仿真教学领域,AI技术的应用也日益丰富,为虚拟情景交互体验带来了前所未有的好处。 提高VR虚拟情景的逼真度 通过深度学习和计算机视觉等技术,AI/VR虚拟现…

[unity]lua热更新——个人复习笔记【侵删/有不足之处欢迎斧正】

一、AssetBundle AB包是特定于平台的资产压缩包,类似于压缩文件 相对于RESOURCES下的资源,AB包更加灵活轻量化,用于减小包体大小和热更新 可以在unity2019环境中直接下载Asset Bundle Browser 可以在其中设置关联 AB包生成的文件 AB包文件…

2024.02.28作业

模拟面试 1. 什么是回调函数 将函数作为另一函数的参数 实现:通过函数指针,如线程的创建函数 2. 结构体和共用体的区别 结构体的每个成员都会分配内存,大小为各个成员所占内存之和,内存对齐 共用体的内存以最大成员为主 3. 赋…

MATLAB练习题:投骰子经过100格的概率

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 有一个人从原点(第0格)开始扔一个六面…

【Ansys Fluent Web 】全新用户界面支持访问大规模多GPU CFD仿真

基于Web的技术将释放云计算的强大功能,加速CFD仿真,从而减少对硬件资源的依赖。 主要亮点 ✔ 使用Ansys Fluent Web用户界面™(UI),用户可通过任何设备与云端运行的仿真进行远程交互 ✔ 该界面通过利用多GPU和云计算功…

玩客云刷机(保姆级教程)ArmBian+Casaos

最近我发现自己买的玩客云会24小时写我的硬盘,后面了解了一下,玩客云有链克计划,会一直写你的盘,且关不掉,所以我就自己刷了个机,刷成了Armbian,下面就是我的教程 准备材料 一根usb公对公的线…

flink重温笔记(八):Flink 高级 API 开发——flink 四大基石之 Window(涉及Time)

Flink学习笔记 前言:今天是学习 flink 的第八天啦!学习了 flink 高级 API 开发中四大基石之一: window(窗口)知识点,这一部分只要是解决数据窗口计算问题,其中时间窗口涉及时间,计数…

046-WEB攻防-注入工具SQLMAPTamper编写指纹修改高权限操作目录架构

046-WEB攻防-注入工具&SQLMAP&Tamper编写&指纹修改&高权限操作&目录架构 #知识点: 1、SQLMAP-常规猜解&字典配置 2、SQLMAP-权限操作&文件命令 3、SQLMAP-Tamper&使用&开发 4、SQLMAP-调试指纹&风险等级 演示案例&#xf…

华为配置AP接入GPON网络配置示例

配置AP接入GPON网络配置示例 组网图形 图1 配置AP接入GPON网络示例 表1 版本信息 网元 设备选型 版本 OLT EA5800 V100R019C20 AC AC6805 V200R019C10 AP AirEngine 6760-X1 配套安装OptiXstar S800E GPON光模块 V200R019C10 Switch S6320-SI V200R019C10 ^^^ 组…

[python]随机选取的方式——random.choices()

关于随机选取的函数。 1. 列表随机选取 1.1. 随机等概率选取一个结果 首先我们来想象一下,现在有一个列表,要在其中随机选取一个数字,比如: a [1,2,3,4,5] 这里我们需要用到一种比较简单的随机选取方式,即random…