摘要:
数据源读入数据之后,我们就可以使用各种转换算子,讲一个或者多个DataStream转换成为新的DataStream(一个Flink程序的核心就是所有的转换操作,他们决定了处理的业务逻辑) 基本的转换算子:map、filter、flatMap等 聚合算子:keyBy 简单聚合: sum():在输入流上 阅读全文
摘要:
Flink可以从各种来源获取数据,构建DataStream进行转换处理,source就是我们整个处理程序的输入端 从kafka中读取数据 bject KafKaSourceClass { def main(args: Array[String]): Unit = { /** * 构建Flink环境 阅读全文
摘要:
Flink运行架构 Flink 的运行时架构中,最重要的就是两大组件:作业管理器(JobManger)和任务管理器(TaskManager)。对于一个提交执行的作业,JobManager 是真正意义上的“管理者”(Master),负责管理调度,所以在不考虑高可用的情况下只能有一个;而 TaskMan 阅读全文
摘要:
Flink的核心特性: 1、高吞吐,低延迟 2、结果的准确性,提供了事件时间和处理时间,对于乱序事件流仍然提供一致且准确地结果 3、精确一次(exactly-once)的状态一致性保证 4、可以连接到最常用的存储系统和分布式文件系统 5、高可用,本身高可用的设置,再加上从故障中快速恢复和动态扩展任务 阅读全文
摘要:
将服务器的ACK在设置为-1,可以保证producer到server之间的数据不丢失 即at least once 。 将服务器的ACK级别设置为0,可以保证生产者每条消息只会被发送一次 即at most once。 at least once 可以保证数据不丢失 但是不能保证数据不重复,相对的 a 阅读全文
摘要:
分区策略: 分区原因: 方便在集群中扩展,每个partition可以通过调整以适应他所在的机器,而一个topic又可以由多个partition组成,因此整个集群就可以适应任意大小的数据 可以提高并发 因为可以以partition为单位进行读写 分区原则: 将producer发送的数据封装成一个Pro 阅读全文