码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 浅谈实时计算


    文章目录

    • 01 引言
    • 02 为何选择Flink?
      • 2.1 处理无界和有界数据
      • 2.2 利用内存性能
      • 2.4 运维部署
        • 2.4.1 高可用
        • 2.4.2 部署至任意地方
        • 2.4.3 运行任意规模应用
    • 03 解决方案
      • 3.1 阿里云 - 实时计算Flink版
      • 3.2 腾讯云 - 数据开发
      • 3.3 华为云 - DLI
      • 3.4 青云科技 - 大数据工作台
      • 3.5 ververica
    • 04 文末

    01 引言

    说到实时计算,首先我们需要了解其概念。

    实时计算 是一种持续、低时延、事件触发的计算作业

    实时计算有如下三种特点:

    • 实时(Realtime)且无界(Unbounded)的数据流:实时计算面对的数据是实时且流式的,这些数据按照时间发生顺序被实时计算订阅和消费,例如网站的访问单击日志流,只要网站不关闭,其单击日志流将不停产生并进入实时计算系统;
    • 持续(Continous)且高效的计算:实时计算是一种事件触发的计算模式,触发源为无界流式数据,一旦有新的流数据进入实时计算系统,它就立刻发起并进行一次计算任务,因此整个过程是持续进行的;
    • 流式(Streaming)且实时的数据集成:被流数据触发的计算结果,可以被直接写入目的数据存储,例如将计算后的报表数据直接写入关系型数据库进行报表展示,因此流数据的计算结果可以同流式数据一样,持续被写入目的数据存储。

    说到实时计算的实现,有很多种技术手段,目前主流的技术实现是Flink,博主曾经开过Flink的专栏,有兴趣的同学可以了解下《Flink专栏》。

    在这里插入图片描述

    02 为何选择Flink?

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

    在这里插入图片描述

    2.1 处理无界和有界数据

    Apache Flink 擅长处理无界和有界数据集 精确的时间控制和状态化使得 Flink 的运行时(runtime)能够运行任何处理无界流的应用,有界流则由一些专为固定大小数据集特殊设计的算法和数据结构进行内部处理,产生了出色的性能。

    • 无界数据:有定义流的开始,但没有定义流的结束,它们会无休止地产生数据,无界流的数据必须持续处理,处理无界数据通常要求以特定顺序摄取事件,例如:事件发生的顺序,以便能够推断结果的完整性,可以理解为流处理;
    • 有界数据:有定义流的开始,也有定义流的结束,有界流可以在摄取所有数据后再进行计算,有界流所有数据可以被排序,所以并不需要有序摄取,有界流处理通常被称为批处理。

    在这里插入图片描述

    2.2 利用内存性能

    有状态的 Flink 程序针对本地状态访问进行了优化。任务的状态始终保留在内存中,如果状态大小超过可用内存,则会保存在能高效访问的磁盘数据结构中。

    • 任务通过访问本地(通常在内存中)状态来进行所有的计算,从而产生非常低的处理延迟;
    • Flink 通过定期和异步地对本地状态进行持久化存储来保证故障场景下精确一次的状态一致性。
      在这里插入图片描述

    2.4 运维部署

    2.4.1 高可用

    Flink通过几下多种机制维护应用可持续运行及其一致性:

    • 检查点的一致性: Flink的故障恢复机制是通过建立分布式应用服务状态一致性检查点实现的,当有故障产生时,应用服务会重启后,再重新加载上一次成功备份的状态检查点信息。结合可重放的数据源,该特性可保证精确一次(exactly-once)的状态一致性;
    • 高效的检查点: 如果一个应用要维护一个TB级的状态信息,对此应用的状态建立检查点服务的资源开销是很高的,为了减小因检查点服务对应用的延迟性(SLAs服务等级协议)的影响,Flink采用异步及增量的方式构建检查点服务。
    • 端到端的精确一次: Flink 为某些特定的存储支持了事务型输出的功能,及时在发生故障的情况下,也能够保证精确一次的输出。
    • 集成多种集群管理服务: Flink已与多种集群管理服务紧密集成,如 Hadoop YARN, Mesos, 以及 Kubernetes。当集群中某个流程任务失败后,一个新的流程服务会自动启动并替代它继续执行。
    • 内置高可用服务: Flink内置了为解决单点故障问题的高可用性服务模块,此模块是基于Apache ZooKeeper 技术实现的,Apache ZooKeeper是一种可靠的、交互式的、分布式协调服务组件。

    2.4.2 部署至任意地方

    Flink 被设计为能够很好地工作在上述每个资源管理器中,这是通过资源管理器特定(resource-manager-specific)的部署模式实现的,Flink 可以采用与当前资源管理器相适应的方式进行交互。提交或控制应用程序的所有通信都是通过 REST 调用进行的,这可以简化 Flink 与各种环境中的集成。

    Apache Flink 是一个分布式系统,它除了可以作为独立集群运行,同时需要计算资源来执行应用程序,Flink 集成了所有常见的集群资源管理器,例如:

    • Hadoop YARN
    • Apache Mesos
    • Kubernetes

    2.4.3 运行任意规模应用

    除此,Flink可以运行任意规模应用。应用程序被并行化为可能数千个任务,这些任务分布在集群中并发执行,所以应用程序能够充分利用无尽的 CPU、内存、磁盘和网络 IO,而且 Flink 很容易维护非常大的应用程序状态,其异步和增量的检查点算法对处理延迟产生最小的影响,同时保证精确一次状态的一致性。

    03 解决方案

    好了,至此已经讲完了为何选择Flink作为实时计算的技术实现的原因了,那么目前的市面上是否有实时计算的解决方案呢?其实在Flink的官方网站已经提供了一些供应商的解决方案参考:https://nightlies.apache.org/flink/flink-docs-release-1.15/zh/docs/deployment/overview/。
    在这里插入图片描述

    下面来举几个例子。

    3.1 阿里云 - 实时计算Flink版

    实时计算Flink版:https://help.aliyun.com/product/45029.html

    操作参考文档:

    • SQL 作业:https://help.aliyun.com/document_detail/333392.html
    • JAR 作业:https://help.aliyun.com/document_detail/338405.html
      在这里插入图片描述
      在这里插入图片描述

    3.2 腾讯云 - 数据开发

    数据开发治理平台(Wedata):https://cloud.tencent.com/document/product/1267

    操作参考文档:https://cloud.tencent.com/document/product/1267/72515

    目前的产品其实已经支持了,只是官方的文档没有更新
    在这里插入图片描述

    3.3 华为云 - DLI

    • 数据湖探索DLI:https://support.huaweicloud.com/qs-dli/dli_13_0007.html
    • 华为云实时流计算技术与实践: http://bos.itdks.com/7d5c76a6bda440bc854fea039fd312bc.pdf

    操作文档参考:https://support.huaweicloud.com/usermanual-dli/dli_01_0403.html
    在这里插入图片描述

    3.4 青云科技 - 大数据工作台

    青云科技: https://docsv3.qingcloud.com/bigdata/dataomnis/intro/introduction/

    操作文档:https://docsv3.qingcloud.com/bigdata/dataomnis/quickstart/summary/
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.5 ververica

    官网:https://www.ververica.com/

    操作文档:https://docs.ververica.com/getting_started/index.html
    在这里插入图片描述

    04 文末

    本文主要讲解了实时计算的一些概念、实时计算的Flink技术实现、实时计算的解决方案参考,希望能帮助到大家,谢谢大家的阅读,本文完!

  • 相关阅读:
    自动化部署static资源到cos-bucket
    windows下flutter的环境安装
    如何快速理解复杂业务,系统思考问题?
    网络服务---OSI七层参考模型及各层工作原理详解
    常用的机器学习模型算法
    虚拟机运行Hadoop | 各种问题解决的心路历程
    【Java】字节流、字符流、IO异常、属性集
    重温51汇编指令(附实验)
    Python面向对象编程【进阶】
    uni-app 点击蒙版层时关闭自定义弹窗
  • 原文地址:https://blog.csdn.net/qq_20042935/article/details/126739285
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号