苏州城乡建设局的网站首页,wordpress动画主题,通付盾 网站公司建设,上海人才网积分查询#x1f3e1; 个人主页#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 #x1f6a9; 私聊博主#xff1a;加入大数据技术讨论群聊#xff0c;获取更多大数据资料。 #x1f514; 博主个人B栈地址#xff1a;豹哥教你大数据的个人空间-豹… 个人主页IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 私聊博主加入大数据技术讨论群聊获取更多大数据资料。 博主个人B栈地址豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录
1. Flink的核心特性
2. Flink应用场景 1. Flink的核心特性
Flink具有先进的架构理念拥有诸多的优秀特性以及完善的编程接口Flink的优势有以下几点
1) 批流一体化
Flink可以在底层用同样的数据抽象和计算模型来进行批处理和流处理。事实上Flink在设计理念上没有刻意强调批处理和流处理而更多的强调数据的有界和无界这就意味着Flink能够满足企业业务需求无需用两种甚至多种框架分别实现批处理和流处理这大大降低了架构设计、开发、运维的复杂度可以节省大量的人力成本。
2) 同时支持高吞吐、低延迟、高性能
Flink是目前开源社区中唯一一套集高吞吐、低延迟、高性能三者于一身的分布式流式数据处理框架。像Apache Spark也只能兼顾高吞吐和高性能特性主要因为在SparkStreaming流式计算中无法做到低延迟保障而流式计算框架Apache Storm只能支持低延迟和高性能特性但是无法满足高吞吐的要求。而满足高吞吐、低延迟、高性能这三个目标对分布式流式计算框架来说是非常重要的。
3) 支持事件时间Event Time概念
在流式计算领域中窗口计算的地位举足轻重但目前大多数框架窗口计算采用的都是系统时间Process Time也是事件传输到计算框架处理时系统主机的当前时间。Flink能够支持基于事件时间Event Time语义进行窗口计算也就是使用事件产生的时间这种基于事件驱动的机制使得事件即使乱序到达流系统也能够计算出精确的结果保持了事件原本产生时的时序性尽可能避免网络传输或硬件系统的影响。
4) 支持有状态计算
Flink在1.4版本中实现了状态管理所谓状态就是在流式计算过程中将算子的中间结果数据保存在内存或者文件系统中等下一个事件进入算子后可以从之前的状态中获取中间结果中计算当前的结果从而无须每次都基于全部的原始数据来统计结果这种方式极大地提升了系统的性能并降低了数据计算过程的资源消耗。对于数据量大且运算逻辑非常复杂的流式计算场景有状态计算发挥了非常重要的作用。
5) 支持高度灵活的窗口Window操作
在流处理应用中数据是连续不断的需要通过窗口的方式对流数据进行一定范围的聚合计算例如统计在过去的1分钟内有多少用户点击某一网页在这种情况下我们必须定义一个窗口用来收集最近一分钟内的数据并对这个窗口内的数据进行再计算。Flink将窗口划分为基于Time、Count、Session以及Data-driven等类型的窗口操作窗口可以用灵活的触发条件定制化来达到对复杂的流传输模式的支持用户可以定义不同的窗口触发机制来满足不同的需求。
6) 基于轻量级分布式快照Snapshot实现的容错
Flink能够分布式运行在上千个节点上将一个大型计算任务的流程拆解成小的计算过程然后将tesk分布到并行节点上进行处理。在任务执行过程中能够自动发现事件处理过程中的错误而导致数据不一致的问题比如节点宕机、网路传输问题或是由于用户因为升级或修复问题而导致计算服务重启等。在这些情况下通过基于分布式快照技术的Checkpoints将执行过程中的状态信息进行持久化存储一旦任务出现异常停止Flink就能够从Checkpoints中进行任务的自动恢复以确保数据在处理过程中的一致性Exactly-Once。
7) 基于JVM实现独立的内存管理
内存管理是所有计算框架需要重点考虑的部分尤其对于计算量比较大的计算场景数据在内存中该如何进行管理显得至关重要。针对内存管理Flink实现了自身管理内存的机制尽可能减少JVM GC对系统的影响。另外Flink通过序列化/反序列化方法将所有的数据对象转换成二进制在内存中存储降低数据存储的大小的同时能够更加有效地对内存空间进行利用降低GC带来的性能下降或任务异常的风险因此Flink较其他分布式处理的框架会显得更加稳定不会因为JVM GC等问题而影响整个应用的运行。
8) Save Points保存点
对于7*24小时运行的流式应用数据源源不断地接入在一段时间内应用的终止有可能导致数据的丢失或者计算结果的不准确例如进行集群版本的升级、停机运维操作等操作。值得一提的是Flink通过Save Points技术将任务执行的快照保存在存储介质上当任务重启的时候可以直接从事先保存的Save Points恢复原有的计算状态使得任务继续按照停机之前的状态运行Save Points技术可以让用户更好地管理和运维实时流式应用。
9) 多层级API
Flink为用户提供了多个层级API用户可以根据自身对于表达力和易用性的需求来选择不同的API层级可以混用以实现复杂的业务逻辑。
2. Flink应用场景
在实际生产的过程中大量数据在不断地产生例如金融交易数据、互联网订单数据、GPS定位数据、传感器信号、移动终端产生的数据、通信信号数据等以及我们熟悉的网络流量监控、服务器产生的日志数据这些数据最大的共同点就是实时从不同的数据源中产生然后再传输到下游的分析系统。针对这些数据类型主要包括实时智能推荐、复杂事件处理、实时欺诈检测、实时数仓与ETL类型、流数据分析类型、实时报表类型等实时业务场景而Flink对于这些类型的场景都有着非常好的支持。
1) 实时智能推荐
智能推荐会根据用户历史的购买行为通过推荐算法训练模型预测用户未来可能会购买的物品。对个人来说推荐系统起着信息过滤的作用对Web/App服务端来说推荐系统起着满足用户个性化需求提升用户满意度的作用。推荐系统本身也在飞速发展除了算法越来越完善对时延的要求也越来越苛刻和实时化。利用Flink流计算帮助用户构建更加实时的智能推荐系统对用户行为指标进行实时计算对模型进行实时更新对用户指标进行实时预测并将预测的信息推送给Wep/App端帮助用户获取想要的商品信息另一方面也帮助企业提升销售额创造更大的商业价值。
2) 复杂事件处理
对于复杂事件处理比较常见的案例主要集中于工业领域例如对车载传感器、机械设备等实时故障检测这些业务类型通常数据量都非常大且对数据处理的时效性要求非常高。通过利用Flink提供的CEP复杂事件处理进行事件模式的抽取同时应用Flink的Sql进行事件数据的转换在流式系统中构建实时规则引擎一旦事件触发报警规则便立即将告警结果传输至下游通知系统从而实现对设备故障快速预警监测车辆状态监控等目的。
3) 实时欺诈检测
在金融领域的业务中常常出现各种类型的欺诈行为例如信用卡欺诈、信贷申请欺诈等而如何保证用户和公司的资金安全是来近年来许多金融公司及银行共同面对的挑战。随着不法分子欺诈手段的不断升级传统的反欺诈手段已经不足以解决目前所面临的问题。以往可能需要几个小时才能通过交易数据计算出用户的行为指标然后通过规则判别出具有欺诈行为嫌疑的用户再进行案件调查处理在这种情况下资金可能早已被不法分子转移从而给企业和用户造成大量的经济损失。而运用Flink流式计算技术能够在毫秒内就完成对欺诈判断行为指标的计算然后实时对交易流水进行规则判断或者模型预测这样一旦检测出交易中存在欺诈嫌疑则直接对交易进行实时拦截避免因为处理不及时而导致的经济损失。
4) 实时数仓与ETL
结合离线数仓通过利用流计算诸多优势和SQL灵活的加工能力对流式数据进行实时清洗、归并、结构化处理为离线数仓进行补充和优化。另一方面结合实时数据ETL处理能力利用有状态流式计算技术可以尽可能降低企业由于在离线数据计算过程中调度逻辑的复杂度高效快速地处理企业需要的统计结果帮助企业更好地应用实时数据所分析出来的结果。
5) 流数据分析
实时计算各类数据指标并利用实时结果及时调整在线系统相关策略在各类内容投放、无线智能推送领域有大量的应用。流式计算技术将数据分析场景实时化帮助企业做到实时化分析Web应用或者App应用的各项指标包括App版本分布情况、Crash检测和分布等同时提供多维度用户行为分析支持日志自主分析助力开发者实现基于大数据技术的精细化运营、提升产品质量和体验、增强用户黏性。
6) 实时报表分析
实时报表分析是近年来很多公司采用的报表统计方案之一其中最主要的应用便是实时大屏展示。利用流式计算实时得出的结果直接被推送到前端应用实时显示出重要指标的变换情况。最典型的案例便是淘宝的双十一活动每年双十一购物节除疯狂购物外最引人注目的就是天猫双十一大屏不停跳跃的成交总额。在整个计算链路中包括从天猫交易下单购买到数据采集、数据计算、数据校验最终落到双十一大屏上展现的全链路时间压缩在5秒以内顶峰计算性能高达数三十万笔订单/秒通过多条链路流计算备份确保万无一失。而在其他行业企业也在构建自己的实时报表系统让企业能够依托于自身的业务数据快速提取出更多的数据价值从而更好地服务于企业运行过程中。 自2019年1月起阿里巴巴逐步将内部维护的Blink回馈给Flink开源社区目前贡献代码数量已超过100万行在最新的Flink1.15版本中Blink和Flink也进行了合并。国内包括腾讯、小米、华为、字节跳动等公司国外包括 Uber、ebay、Netflix 等公司都是 Flink 的使用者。