Flink入门(一)

整体框架

  1. Flink概述
  2. Flink上手部署
  3. Flink架构
  4. DataStream API(算子)
  5. Flink中的时间和窗口:窗口就是范围
  6. 处理函数:底层函数
  7. 状态管理:
  8. 容错机制:报错重启后能够从出错的位置继续执行
  9. FlinkSQL:功能逐步完善

基于数据流的有状态计算

  1. 正确性保证
    • 精确一次(Exactly-once)状态一致性
    • 事件时间处理
    • 成熟的迟到数据处理
  2. 分层API:底层处理函数、java API、Flink SQL
  3. 聚焦运维:灵活部署、高可用、保存点
  4. 大规模计算:水平扩展架构、支持超大状态、增量检查点机制
  5. 性能卓越:低延迟(毫秒级的计算)、高吞吐(每秒数百万事件处理)、内存计算
  6. 可以连接到常用的存储系统:Kafka, Hive, JDBC, HDFS, Redis等

流式场景

  1. 事件驱动应用:事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。
  2. 流批分析:既支持流处理、也支持批处理
  3. 数据管道&ETL:提取-转换-加载(ETL)是一种在存储系统之间进行数据转换和迁移的常用方法。

状态

把流处理需要使用到的额外数据保存为一个“状态”,状态会跟着流动的数据动态的变化。

Flink分层API

  1. SQL
  2. Table API
  3. DataStream
  4. 有状态流处理(底层 API 处理函数)

集群剖析

  1. JobManager:协调Flink程序的分布式执行,对完成的task或执行失败做出反应,协调检查点,恢复还原状态。一般集群中只有一个。
  2. TaskManager: 执行作业流的Task, 并且缓存和交换数据流。存在一个或者多个。

部署模式

  1. 会话模式:多个任务共享一个任务管理器,适合多个执行时间短、使用资源少的任务。先起集群再提交作业

  2. 单作业模式:一个作业,专用的任务管理器,程序运行在客户端机器上。

  3. 应用模式:一个作业,专用的任务管理器,程序运行在集群机器上。

Flink入门(一)_第1张图片

Standalone模式

  1. 配置集群参数
  2. 使用./jobmanager.sh start | ./taskmanager.sh start 单点启动
  3. 使用bin/start-cluster.sh | bin/stop-cluster 群起群关

YARN运行模式

后续补充

你可能感兴趣的:(flink,大数据)