摘要:
定义了窗口分配器,只是知道了数据属于哪个窗口,可以将数据收集起来了;至于收集起来到底要做什么,其实还完全没有头绪。所以在窗口分配器之后,必须再接上一个定义窗口如何进行计算的操作,这就是所谓的“窗口函数”(window functions)。经窗口分配器处理之后,数据可以分配到对应的窗口中,而数据流经 阅读全文
摘要:
1、窗口API 1,1、按键分区(Keyed)和非按键分区(Non-Keyed) 在定义窗口操作之前,首先需要确定,到底是基于按键分区(Keyed)的数据流KeyedStream来开窗,还是直接在没有按键分区的DataStream上开窗。也就是说,在调用窗口算子之前,是否有keyBy操作。 按键分区 阅读全文
摘要:
Flink中事件时间和水位线是做基于时间的处理计算的基础。之前我们已经了解了Flink中基本的聚合操作。在流处理中,我们往往需要面对的是连续不断、无休无止的无界流,不可能等到所有所有数据都到齐了才开始处理。所以聚合计算其实只能针对当前已有的数据——之后再有数据到来,就需要继续叠加、再次输出结果。这样 阅读全文
摘要:
1、水位线生成原则 完美的水位线是“绝对正确”的,也就是一个水位线一旦出现,就表示这个时间之前的数据已经全部到齐、之后再也不会出现了。而完美的东西总是可望不可即,我们只能尽量去保证水位线的正确。如果对结果正确性要求很高、想要让窗口收集到所有数据,那么只能等了。由于网络传输的延迟不确定,为了获取所有迟 阅读全文
摘要:
1、aggregate 首先看下 aggregate 函数签名 def aggregate[U: ClassTag](zeroValue: U)(seqOp: (U, T) => U, combOp: (U, U) => U): U 说明 参数zeroValue:seqOp运算符的每个分区的累积结果 阅读全文
摘要:
对于数据处理系统的架构,最简单的方式就是单节点。当数据量增大,计算逻辑更加复杂多变时,可以考虑增加CPU、加大内存,也就是让一台机器变得性能更加强大从而提高计算性能——这是所谓的对称多处理架构(SMP),但是SMP存在问题很明显:所有CPU 完全平等,所有内存、总线资源共享,这就势必造成资源竞争;而 阅读全文
摘要:
虽然flink 本身支持Standalone模式,无需其他框架也可以运行,但是这种方式降低了和其他第三方资源调度框架的耦合性,独立性很强。但是Flink是大数据计算框架,资源调度并非其强项;所以大多数时候需要让专业的框架做资源调度,比如说Yarn和K8s,这里我们就以Yarn 模式来演示Flink是 阅读全文
摘要:
1、部署模式 flink 支持3种部署模式: 会话模式(Session Mode) 单作业模式(Per-Job Mode) 应用模式(Application Mode) 三种模式区别在于:集群的生命周期&资源的分配方式,以及作业的main方法在客户端(Client)还是JobManager执行 1. 阅读全文
摘要:
1、环境说明 系统环境:centos6.8 Java版本:jdk1.8 hadoop版本:hadoop2.7.2 flink版本:flink-1.13.0-bin-scala_2.12.tgz 本次以独立部署模式演示flink提交作业的2种方式 2、环境准备 安装 [hui@hadoop103 so 阅读全文
摘要:
环境说明 这段时间在梳理 flink,今天刚好测试之前的一个应用:在web ui 上提交任务报错了: 如图:这里指定了运行的主程序类名和并行度,然后点击submit 时,出错了 单纯从页面报错信息无法准确定位错误原因,此时可以通过 日志文件查看错误原因‘ [hui@hadoop103 ~]$ cd 阅读全文