Flink抽象出的内存类型 HEAP:JVM堆内存 OFF_HEAP:非堆内存 这在Flink中被定义为一个枚举类型:MemoryType。 @Internalpublic enum MemoryType { /** * Denotes memory that is part of t ...
Flink源码解析 Flink中Task间的数据传递
数据传递AbstractStreamOperator$CountingOutput.collect@Override public void collect(StreamRecord<OUT> record) { numRecordsOut.inc(); outpu ...
Flink源码解析 TaskManager启动与运行Task
./taskmanager.sh start 实际上,调用了如下语句/usr/local/flink/flink-1.7.2/bin/flink-daemon.sh start taskexecutor --configDir /usr/local/flink/flink-1.7.2/conf 在f ...
Flink 的 Exactly Once 和 At Least Once 和 Jstorm的ACK
有状态与无状态 无状态:数据的计算与上一次的计算结果无关。例如map,flatMap 有状态: 数据的计算与上一次的计算结果有关,例如时间窗口内的sum,需要累加求和。 无状态计算的例子 比如:我们只是进行一个字符串拼接,输入 a,输出 a_666,输入b,输出 b_666输出的结果跟之前的状态 ...
Flink LocalAgg
背景参考了腾讯Oceanus和阿里Blink中minibatch的思路,针对热流进行预聚合的方式解决数据倾斜的问题。 Local Keyed Streams现实中,很多数据具有幂律分布(,幂律就是两个通俗的定律,一个是“长尾”理论,只有少数大的门户网站是很多人关注的,但是还有一个长长的尾巴,就是小网 ...
Flink 通信机制和背压处理
本地线程数据传递(同一个TM)以Operator FlatMap 所在线程 与 下游 Operator sum() 所在线程间的通信为例。这两个task线程共享同一个Buffer pool,通过wait()/notifyAll来同步。 Buffer和Netty中的ByteBuf功能类似,可以看作是 ...
Flink源码解析 资源申请
申请资源申请资源就得从ejv.allocateResourcesForAll 即 ExecutionJobVertex的allocateResourcesForAll 方法说起。这个方法先遍历了每个ExecutionJobVertex中的所有的task,为每一个task申请一个slot。Execut ...
Flink 使用调优(二)
这次调优的场景是处于批处理和yarn模式。 背景获取位于hdfs的两个数据的多份文件,数据是按照5分钟或者一小时归档成一个文件夹。并且每个文件夹内部有多个文件,分析一天的数据,又碎又散。 两份数据需要先union后再join。 调优taskmanager.network.memory数据需要继续un ...
Flink源码解析 CLI提交job到JobManger到TaskMnager运行job
CLI提交Job启动Job./bin/flink run examples/streaming/SocketWindowWordCount.jar 跟踪Flink的脚本代码就会发现,最终会执行以下命令:exec $JAVA_RUN $JVM_ARGS "${log_setting ...
Kafka消息格式的演变
copy byhttps://mp.weixin.qq.com/s?__biz=MzU0MzQ5MDA0Mw==&mid=2247483983&idx=1&sn=1c2bd11df195f84e5433512f6b2695e8&chksm=fb0be8dbcc7c61 ...