flink组件擅长什么

2024-05-04 13:09

1. flink组件擅长什么

Flink是一个框架和分布式处理引擎,用于对无限制和有限制的数据进行有状态的计算。Flink被设计为可在所有常见的集群环境中运行,以内存速度和任何规模执行计算。
Flink擅长处理无边界和有界的数据集。对事件和状态的精确控制使Flink的运行时能够在无限制的流上运行任何类型的应用程序。有界流由专门为固定大小的数据集设计的算法和数据结构在内部进行处理,从而产生出色的性能。
部署Flink应用程序时,Flink会根据应用程序配置的并行性自动识别所需的资源,并向资源管理器请求它们。如果发生故障,Flink会通过请求新资源来替换发生故障的容器。提交或控制应用程序的所有通信均通过REST调用进行。简化了Flink在许多环境中的集成。
Flink旨在运行任何规模的有状态流应用程序。将应用程序并行化可能在集群中分布并同时执行的数千个任务。因此,应用程序几乎可以利用无限数量的CPU,主内存,磁盘和网络IO。并且,Flink易于维护非常大的应用程序状态。它的异步和增量检查点算法可确保对处理延迟的影响降至最低,同时保证一次状态一致性。

flink组件擅长什么

2. flink流处理特点

flink的流处理特性:支持高吞吐量、低延迟和高性能流处理。支持带事件时间的窗口操作。支持有状态计算的恰好一次语义支持高度灵活的窗口操作,支持基于时间、计数、会话和数据驱动的窗口操作。支持带背压功能的连续流模型基于轻量级分布式快照支持容错运行时支持流处理上的批处理和流处理。Flink在JVM中实现了自己的内存管理。支持迭代计算支持程序自动优化:避免特定情况下的洗牌、排序等代价高昂的操作,需要缓存中间结果。API支持数据流API是为流数据类应用程序提供的。对于批处理应用,提供数据集API(支持Java/Scala)图书馆支持支持机器学习(FlinkML)支持图分析(Gelly)支持关系数据处理(表)支持复杂事件处理(CEP)支持集成在纱线上支撑弗林克HDFS支持支持来自Kafka的输入数据Apache HBase支持Hadoop程序支持支持超光速粒子支持ElasticSearch。支持兔子阿帕奇风暴支援S3支持XtreemFS支持

3. Flink系列之Flink的应用场景(一)

        DT时代,人们对于数据的要求越来越严格,从开始的 大数据 到现在慢慢转变成 快数据 ,我们很多公司都是基于Hadoop生态搭建自己的数据仓库,将不同源的数据按照一定的 周期 (时/天等)通过 ETL (提取,转换,加载)放到我们的数仓以供分析师使用,但是随着业务发展,我们不得不面对一个事实,我们上述做的都属于批处理,我们的分析师或者我们的业务需要实时的数据,那么在批处理转到流计算的时候,我们会面临很多很多问题,例如低延时、高吞吐、exactly-once、无序问题等等。Storm 实现了低延迟,还做不到高吞吐,也不能在故障发生时准确地处理计算状态;Spark Streaming通过采用微批处理方法实现了高吞吐和容错性,但是牺牲了低延迟和实时处理能力,也不能使窗口与自然时间相匹配,并且表现力欠佳。而flink就是目前为止的最佳答案。
  
         我们在选择一个新的技术框架的时候,首先考虑的是他的应用场景,再牛逼的框架没有应用场景也是一无是处,当然牛逼的框架大多都是基于某一个或者某一类应用场景而产生,而flink主要应用于以下三个场景:
  
          1.事件驱动型应用 
  
          2.数据分析型应用 
  
          3.数据管道 ETL   
  
  什么是事情驱动型应用? 
  
 定义:事件驱动型应用是一类具有状态的应用,该应用会根据事件流中的 事件 触发 计算 、 更新状态 或 进行外部系统操作 。
  
 关键词: 事件 ---->状态---->外部系统
  
 每条数据(事件)触发变化
  
 例如:金融反欺诈,实施推荐,实施规则报警
                                          
 在说这个之前,先说一下什么是分析,我们从事数据分析相关行业,有时候经常忘记分析本身到底是什么,下边是维基百科对于分析的定义
  
 看到定义之后,再看我们工作中经常对各种数据按照不同维度拆分来分析数据代表的现象,来更好的理解数据,这是我们做数据分析的本质。
  
 那么定义首先:
  
 数据分析型应用是从原始 数据 中 提取 有价值的信息和指标,关键词:原始数据(集)、提取(过滤分析)
  
 它的主要应用在于对数据集进行操作,重在分析
  
 典行的数据分析型应用比如今年的疫情,我们会统计每天每地上传的信息,然后展示在包括支付宝等平台。
                                          
 那事件驱动型应用和数据分析型应用有何本质区别?
  
 简单总结一下:
  
                 数据触发计算会派发新的动作(状态/消息)
  
                 数据只是分析不派生新的动作(只是输出结果)
  
         看到过很多大咖分享自己对于数据仓库ETL的看法,自己也做了一些数据仓库的工作,但是从来没有认真总结过,会在下一篇文章总结一下我对ETL的认知,也会谈一下最近新兴起的数据湖的看法。
  
 以上

Flink系列之Flink的应用场景(一)

最新文章
热门文章
推荐阅读