Lazy loaded image
1.Flink基础
00 分钟
2024-10-9
notion image
 
Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink 旨在运行在所有常见的集群环境中,以内存速度和任何规模执行计算。

一般项目数据处理流程

大多数企业传统架构中区分了两种类型的数据处理:事务处理(OLTP)和分析处理(OLAP)。
 

事务处理

公司将各种应用程序用于日常业务活动,例如企业资源规划(ERP)系统,客户关系管理(CRM)软件和基于Web的应用程序。这些系统通常设计有单独的层,用于数据处理(应用程序本身)和数据存储(事务数据库系统)
notion image
 
notion image

分析处理

notion image
一般做法是将大量数据(如日志文件,社交媒体或Web点击日志)写入Hadoop的分布式文件系统(HDFS)、S3或其他批量数据存储库,如Apache HBase,以较低的成本提供大容量存储容量。驻留在此类存储系统中的数据可以通过SQL-on-Hadoop引擎查询和处理,例如Apache Hive,Apache Drill或Apache Impala

有状态的流式处理

notion image
notion image
  • 监控手机网络的质量分析
  • 移动应用中的用户行为
  • 实时数据的即席分析

. Flink的特点

  • 事件驱动(Event-driven)
  • 基于流处理
    • 一切皆由流组成,离线数据是有界的流;实时数据是一个没有界限的流。(有界流、无界流)
  • 分层API
    • 越顶层越抽象,表达含义越简明,使用越方便
    • 越底层越具体,表达能力越丰富,使用越灵活

Flink vs Spark Streaming

  • 数据模型
    • Spark采用RDD模型(弹性分布式数据集/只读的有属性的数据集),spark streaming的DStream实际上也就是一组组小批数据RDD的集合
    • flink基本数据模型是数据流,以及事件(Event)序列
    • spark的 RDD
      notion image
第一行,从HDFS上读取in.txt文件,创建了第一个RDD 第二行,按空格分词,扁平化处理,生成第二个RDD,每个词计数为1,生成了第三个RDD。 第三行,按每个词分组,累加求和,生成第四个RDD 第四行,将Wordcount统计结果输出到HDFS
  • 运行时架构
    • spark是批计算,将DAG划分为不同的阶段,一个完成后才可以计算下一个
    • flink是标准的流执行模式,一个事件在一个节点处理完后可以直接发往下一个节点处理
    •  

      Flink其他特性

  • 事件时间(event-time)和处理时间(processing-tme)语义。即使对于无序事件流,事件时间(event-time)语义仍然能提供一致且准确的结果。而处理时间(processing-time)语义可用于具有极低延迟要求的应用程序。
  • 精确一次(exactly-once)的状态一致性保证。
  • 每秒处理数百万个事件,毫秒级延迟。 Flink应用程序可以扩展为在数千个核(cores)上运行。
  • 分层API,具有不同的权衡表现力和易用性。DataStream API和过程函数(process function),为常见的流处理操作提供原语,如窗口和异步操作,以及精确控制状态和时间的接口。
  • 连接到最常用的存储系统,如Apache Kafka,Apache Cassandra,Elasticsearch,JDBC,Kinesis和(分布式)文件系统,如HDFS和S3。
  • 由于其高可用的设置(无单点故障),以及与Kubernetes,YARN和Apache Mesos的紧密集成,再加上从故障中快速恢复和动态扩展任务的能力,Flink能够以极少的停机时间7*24全天候运行流应用程序。
  • 能够更新应用程序代码并将作业(jobs)迁移到不同的Flink集群,而不会丢失应用程序的状态。
  • 详细且可自定义的系统和应用程序指标集合,以提前识别问题并对其做出反应。
  • 最后但同样重要的是,Flink也是一个成熟的批处理器。
 
上一篇
flowable获取下一步会创建的用户任务
下一篇
windows docker 启动失败

评论
Loading...