摘要:昨天在社区群看到有人问,为什么水印取最小的一条?这里分享一下自己的理解 首先水印一般是设置为:(事件时间 - 指定的值) 这里的作用是解决迟到数据的问题,从源码来看一下它如何解决的 先来看下windowOperator.java接收到数据以后做了什么 在processElement方法中 因为这里是 阅读全文
posted @ 2019-08-22 10:42 末日布孤单 阅读 (231) 评论 (0) 编辑
摘要:TaskManager接收到来自JobManager的jobGraph转换得到的TDD对象,启动了任务,在StreamInputProcessor类的processInput()方法中 通过一个while(true)中不停的拉取上游的数据,然后调用streamOperator.processElem 阅读全文
posted @ 2019-09-11 08:37 末日布孤单 阅读 (69) 评论 (0) 编辑
摘要:前面说到了 Flink的TaskManager启动(源码分析) 启动了TaskManager 然后 Flink的Job启动JobManager端(源码分析) 说到JobManager会将转化得到的TDD发送到TaskManager的RPC 这篇主要就讲一下,Job在TaskManager端是如何启动 阅读全文
posted @ 2019-09-03 18:09 末日布孤单 阅读 (98) 评论 (0) 编辑
摘要:前几天在社区群上,有人问了一个问题 既然上游最小水印会决定窗口触发,那如果我上游其中一条流突然没有了数据,我的窗口还会继续触发吗? 看到这个问题,我蒙了???? 对哈,因为我是选择上游所有流中水印最小的一条作为当前水印时间,那万一最小水印的那条流突然里面没有数据了 那我的最小水印不就一直不往前走了, 阅读全文
posted @ 2019-08-30 17:05 末日布孤单 阅读 (61) 评论 (0) 编辑
摘要:在用户代码中,我们设置生成水印和事件时间的方法assignTimestampsAndWatermarks()中这里有个方法的重载 我们传入的对象分为两种 AssignerWithPunctuatedWatermarks(可以理解为每条数据都会产生水印,如果不想产生水印,返回一个null的水印) As 阅读全文
posted @ 2019-08-30 15:34 末日布孤单 阅读 (99) 评论 (0) 编辑
摘要:通过前面的文章了解到 Driver将用户代码转换成streamGraph再转换成Jobgraph后向Jobmanager端提交 JobManager启动以后会在Dispatcher.java起来RPC方法submitJob(jobGraph),用于接收来自Driver转化得到的JobGraph来启动 阅读全文
posted @ 2019-08-29 15:01 末日布孤单 阅读 (92) 评论 (0) 编辑
摘要:整个Flink的Job启动是通过在Driver端通过用户的Envirement的execute()方法将用户的算子转化成StreamGraph 然后得到JobGraph通过远程RPC将这个JobGraph提交到JobManager对应的接口 JobManager转化成executionGraph.d 阅读全文
posted @ 2019-08-27 18:04 末日布孤单 阅读 (103) 评论 (0) 编辑
摘要:通过启动脚本已经找到了TaskManager 的启动类org.apache.flink.runtime.taskexecutor.TaskManagerRunner 来看一下它的main方法中 最后被start了起来 start其实是将taskManager 端的RPC服务起起来了 看一下TaskM 阅读全文
posted @ 2019-08-26 18:40 末日布孤单 阅读 (63) 评论 (0) 编辑
摘要:都知道Flink中的角色分为Jobmanager,TaskManger 在启动脚本里面已经找到了jobmanager的启动类org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint(local模式更简单直接在Driv 阅读全文
posted @ 2019-08-24 18:22 末日布孤单 阅读 (36) 评论 (0) 编辑
摘要:整个Flink集群的角色分为Jobmanager和TaskManager 以Standalone为例来看一下脚本里面是怎样启动集群的 找到源码的dist这里面包含了启动的脚本文件 standalone模式下我们通过start-cluster.sh这个脚本启动 来看下里面具体做了什么 在最后调用了jo 阅读全文
posted @ 2019-08-23 11:01 末日布孤单 阅读 (39) 评论 (0) 编辑
摘要:昨天在社区群看到有人问,为什么水印取最小的一条?这里分享一下自己的理解 首先水印一般是设置为:(事件时间 - 指定的值) 这里的作用是解决迟到数据的问题,从源码来看一下它如何解决的 先来看下windowOperator.java接收到数据以后做了什么 在processElement方法中 因为这里是 阅读全文
posted @ 2019-08-22 10:42 末日布孤单 阅读 (231) 评论 (0) 编辑