1.1 Flink介绍

什么是flink,flink就是一个分布式、高性能、高可用,可以进行流数据处理和批数据处理的开源计算平台。如果熟悉spark数据处理的朋友再了解Flink应该不会很陌生。先说一说flink的几点特性吧,并和spark做一下对比:

  • 完全基于流式的数据处理,其中批数据处理是流式数据处理的一种特例,对比spark来说,正好相反
  • 支持不同语义下的数据处理,像EventTime,ProcessTime和IngestionTime,这些时间语义后面会有介绍,对比spark,spark streaming不支持语义操作,而到了structured streaming才支持EventTime语义操作,并且flink对语义支持的灵活度比spark要高
  • 支持Java,Scala和Python语言,嗯,这个和spark是一样的,不过flink的Python版本还处于beta阶段,而spark已经支持的很好了
  • 支持高吞吐和低延迟,嗯,这个两者都差不多吧
  • 自动反压机制,这个spark也有
  • 可以进行复杂事件处理(CEP)和图处理(Gelly),还能进行机器学习,不过支持的还不完全,根据官网显示,到1.9版本机器学习库好像没有了,相比于spark的机器学习库还是不完善,两者都有图处理的库,既flink的Gelly和spark的GraphX
  • 支持高度灵活的窗口操作,这个和spark相比还是有很大优势的
  • 支持状态编程,这个与spark相比是一大优势
  • 丰富的外部插件,提供了多种connector,例如kafka, hbase, hive, elasticsearch和hdfs等,相对于spark是多出了不少

讲了那么多好处,那它的应用场景呢,flink的应用场景还是有很多的:

  • 流数据分析,这个肯定是第一位的,使用flink主要就是用它的流处理嘛,可以计算各类数据指标,将分析场景实时化,提供多维度的实时分析等
  • 异常检测,比如在金融领域可能会出现各种欺诈行为,如信用卡欺诈,信贷欺诈等,利用flink流式计算可以实时异常检测,避免交易损失
  • 实时智能推荐,降低推荐的延时性,提高用户满意度
  • 实时数据处理,对数据进行实时的ETL操作
  • 复杂事件处理,根据一定的规则或模式对事件进行抽取并分析,进行实时监控预警

results matching ""

    No results matching ""