2.flink技术概览

Posted mask哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.flink技术概览相关的知识,希望对你有一定的参考价值。


1.流处理引擎的演变
    第一代,2011年,专注于毫秒级延迟处理数据并保证系统故障时事件不会丢。缺点:api非常底层,没对流式应用结果饿准确性和一致性提供内置保障,结果完全取决于事件到达的时间和顺序。 lamda架构
    第二代,2013,提供了完善的故障处理机制,即便出现故障,能保证每条记录仅参与一次结果运算。缺点:通过增加延迟,保证高吞吐量和故障处理,结果仍然依赖事件到来的时间和顺序。
    第三代,2015,解决了结果对事件到来时间以及顺序的依赖问题。 

2.flink特点

  • 事件时间语义:能针对无序事件提供一致性、精确的结果;
  • 处理时间语义:能用在具有低延迟需求的应用中
  • 提供精确一次(exactly-once)的状态一致性保障
  • 低延迟,高吞吐
  • 提供层次化api

        flink关系型api
            SQL
            table api
        dataset api
        DataStream api
        process function(处理函数)

  • 存储系统连接器(connector)

        kafka
        cassandra
        es
        jdbc
        kinesis
        文件系统:hdfs/s3

  • 允许在不丢失应用状态下进行作业程序代码更新
  • 提供了可定制的系统&应用指标集合(metrics)
  • 不仅支撑流处理,也支撑批处理
  • 事件驱动
  • 支持反压机制
  • 支持自定义内存管理
  • 支持基于分布式快照(checkpoint)机制实现的容错

3.有状态流处理应用

  • 事件驱动型应用

        实时推荐
        模式识别或复杂事件处理(金融风控)
        异常检测(网络入侵检测)

  • 数据管道应用

        系统之间数据同步
        低延迟方式获取,转换并插入数据

  • 数据分析应用

        应用场景
            手机网络监控
            移动应用中的用户行为分析
            消费者技术中的实时数据即席分析

4.行业应用
    电商和市场营销:数据报表、广告投放、业务流程需要
    物联网(IOT):传感器实时数据采集和显示、实时报警、交通运输
    电信业:基站流量调配
    银行和金融业:实时结算和通知推送、实时检测异常行为

5.flink vs spark streaming

  • 架构不同
  • spark是微批处理;数据模式是RDD,小批处理数据集合;运行时架构,spark将DAG划分为不同步stage,等stage处理完成,才到下个stage
  • flink是流处理;数据模型是数据流以及事件;是标准的流处理模式,一个事件在在一个节点处理完成,直接发往下一个节点处理,不等待;

6.flink部署方式

  • mesos
  • k8s
  • yarn

        session-cluster模式
        per-job-cluster模式

  • standalone(集群模式:master/worker)

7.流的类型
    有界流:离线数据处理->dataset
    无界流:实时数据处理->datastream

8.流处理基础(Dataflow编程)

  • 有向图
  • 数据并行:将输入数据分组,让同一操作的多个任务并行执行在不同数据子集上
  • 任务并行:让不同算子的任务并行计算
  • 数据交换策略

        转发(forward strategy):在发送端任务和接收端任务之间一对一的进行数据传输
        广播(broadcast strategy):把每个数据项发往下游算子的全部并行任务。
        基于键值(key-based strategy):根据键值属性对数据进行分区,并保证键值相同的数据项会交由同一任务处理
        随机(random strategy):将数据均匀分配到算子的所有任务,以实现计算任务的负载均衡。

  • 并行流处理

        延迟:表示处理一个事件所需的时间;在流处理中延迟是以时间片为单位测量。
        吞吐:衡量系统处理能力的指标;每个单位时间系统可以处理多少事件;

  •  数据流上的操作

            数据源:数据接入的操作;数据源可以是从tcp套接字、文件、kafka主题、传感器数据接口中获取的数据;
            数据汇:数据输出操作;写入的目标可以是文件、数据库、消息队列或监控接口;

  • 时间语义
  • 状态和一致性模型

9.flink任务提交方式

  • flink dashboard提交任务
    访问:http://localhost:8081
  • 命令提交: ./flink run -c com.test.StreamWordCount -p 3 /Users/mask/Downloads/scb-backend-super/target/scb-backend-0.0.1-SNAPSHOT.jar --host localhost --port 7777

    取消任务命令:flink cancel 任务ID

以上是关于2.flink技术概览的主要内容,如果未能解决你的问题,请参考以下文章

收藏:常见物联网通信技术概览

收藏:常见物联网通信技术概览

收藏:常见物联网通信技术概览

转:Linux网络IO并行化技术概览

转Intel RealSense(实感技术)概览

第01章 Java 技术概览