南充企业网站建设,创立网站,下载手机app,wordpress官方主题库下面是你提供的文字整理后的结果#xff1a;
1. Flink是一个针对流数据和批数据的分布式处理引擎#xff0c;同时支持原生流处理的开源框架。 - 延迟低(毫秒级)#xff0c;且能够保证消息传输不丢失不重复。 - 具有非常高的吞吐(每秒千万级)。 - 支持原生流处理。…下面是你提供的文字整理后的结果
1. Flink是一个针对流数据和批数据的分布式处理引擎同时支持原生流处理的开源框架。 - 延迟低(毫秒级)且能够保证消息传输不丢失不重复。 - 具有非常高的吞吐(每秒千万级)。 - 支持原生流处理。 - 容错性高基于checkpoint机制。 - 处理模型单条事件处理Spark Streaming是一个事件窗口内的所有事件。 - 部署相对简单只依赖JRE环境。 - 应用场景实时监控(用户行为预警)实时报表(双11直播大屏)实时个性化推荐数据仓库(实时数据清洗、归并)。
2. 流计算与批计算对比 - 流式计算实时、低延迟批量计算非实时、高延迟。 - 流式计算一般针对动态、无边界的数据批量计算一般针对静态数据。 - 流式计算任务是持续运行的批量计算任务一次性完成。
3. Flink的核心特性 - 事件时间Flink应用程序需要从原始数据中解析出事件时间并设置给Flink用于时间窗口计算。 - 灵活的窗口操作。 - 可以处理超出主内存大小限制的数据减少垃圾收集开销。 - 对象序列化二进制存储。
4. Flink的部署 - Application每个Application对应一个Runtime一个Application中可以包含多个Job。 - JobManager每个集群至少有一个负责管理整个集群的计算资源。 - JobManager向ResourceManager申请slot资源。 - TaskManager每个集群有多个TaskManagerTaskManager通过心跳与JobManager通信每个TaskManager可以有多个Task slot。 - 单个Slot可以用于一个或多个Task执行但相同的Task不能在一个Slot中运行。 - Client执行main方法解析JobGraph对象并提交给JobManager。
5. Flink的API - 开源实现的MapReduce模型包含三个阶段Map、Shuffle、Reduce。 - 水位线用于处理实时数据中的乱序问题保证在一个特定事件后必须触发窗口进行计算。 - 窗口的触发时机是窗口截至时间当前的Watermark。 - 其他特性包括window Evictor(数据清除器)OutputTag(分流标签)AsyncFunction(异步查询补充数据)。
6. 状态管理 - Flink中的KeyBy算子根据指定的Key将数据流分区。 - 默认的checkpoint interval为500ms。 - savepoint用于手动触发保存状态数据用于发版等情况与checkpoint保存的内容相同。
7. Table API - 表的数据存储在catalog中临时表存储在内存中永久表存储在外部catalog中比如Hive Catalog。
8. 其他概念和接口 - RichParallelSourceFunction并发数据源。 - CheckpointListener通知checkpoint完成。 - CheckpointedFunction定义快照实现。 - ResultTypeQueryable接口通过输入格式和功能明确告知API返回类型。 - 数据源mq会进行数据分区在多个Flink并发实例的情况下并发消费以提高效率。
9. 关于消费者和生产者的速度和消息堆积的问题 - 消费者的平均速度一定是大于生产者的平均速度否则会造成消息堆积mq通过offset来控制消费偏移量但是还会保存一段时间的历史数据用来消息回溯和查询一般是7天保存数据的时候starRocks可以通过排序键做幂等 -算子本身不需要实现CheckpointedFunction的snapshotState方法就能实现State的保存这是由Flink本身的机制实现的snapshotState方法会在每次正常checkpoint的时候调用 -Flink本身支持starRocks并且实现了snapshotState,功能是把缓存的待写入数据库的数据刷盘到starRocks,这样会有问题就是每次checkpoint的时候都会把数据强制刷盘到数据库这是一个同步处理可能会造成写库很慢消息堆积