Timer在窗口机制中也有重要的地位。提起窗口自然就能想到Trigger,即触发器。 来看下Flink自带的EventTimeTrigger的部分代码,它是事件时间特征下的默认触发器。 @Override public TriggerResult onElement(Object element, ...
Flink源码解析-基于mailbox实现的streamTask模型
AbstractUdfStreamOperator基本上所有的流式操作,都继承了这个类,如果是单流操作就实现OneInputStreamOperator接口,如果是双流操作就实现TwoInputStreamOperator接口。 AbstractUdfStreamOperator 继承了 Abstr ...
Flink源码解析-join双流操作的实现
Window Join and CoGroupWindow Join 操作,顾名思义,是基于时间窗口对两个流进行关联操作。相比于 Join 操作, CoGroup 提供了一个更为通用的方式来处理两个流在相同的窗口内匹配的元素。 Join 复用了 CoGroup 的实现逻辑。它们的使用方式如下: st ...
Flink on native kubernetes 使用和修改
背景目前flink on kubernetes的版本是standalone,资源释放的问题是一个比较头大的问题,如果作业cancel,程序开了别的线程或者内存出现泄漏,都会导致TM有问题。 native kubernetes的seesion模式可以比较好的解决,跟yarn模式一样,可以较好的解决该问 ...
Harbor版本无缝升级
备份cd /data/soft/harbordocker-compose downcd /data/softmv harbor /path/to/backup/harbor_1.8.4cp -r /data/database /path/to/backup/harbor_1.8.4/database ...
Kubernetes 日志采集 EFK
日志采集的必要性容器中的日志,在容器销毁后会跟着容器一起消失,很多时候,程序报错导致的容器重启会带走之前的报错日志,只有通过ELK的形式将日志采集带外部,才可以进行追诉。 本次选用EFK来进行日志的采集,通过fluentd将日志直接发送到es中,然后对接到kibana展示。 日志采集过程采集过程简单 ...
Flink sql client 尝试和增加提交指定集群功能
笔者想要做一个实时计算平台,通过sql来减少开发,如果直接用jar包开发,是可以做精细化管理,但是开发速度就会受到限制。 目前有两种方式,一种是做成一个jar包,sql放入配置文件中,但是这样就没办法很好用上社区的功能,限制太大。另一个是使用flink-sql-client。 集群构建依赖flink ...
clickhouse指标上报prometheus对接grafana
环境准备首选,你需要一个kubernetes环境。 然后,在kubernetes环境上搭建prometheus和grafana。 详情见如下三篇文章 Kubernetes 、Docker环境搭建 prometheus安装教程 grafana安装教程 部署depolementdepolement.ya ...
Kafka 如何优化内存缓冲机制造成的频繁 GC 问题
1、Kafka的客户端缓冲机制首先,先得给大家明确一个事情,那就是在客户端发送消息给kafka服务器的时候,一定是有一个内存缓冲机制的。 也就是说,消息会先写入一个内存缓冲中,然后直到多条消息组成了一个Batch,才会一次网络通信把Batch发送过去。 整个过程如下图所示: 2、内存缓冲造成的频繁 ...
Flink cluster.evenly-spread-out-slots
Flink调度Flink调度^1的时候,会尽量将同一个Task的多个并行度,分配到同一个TM中。会使得某一些TM的cpu消耗比较大,资源使用不够均衡。 配置项cluster.evenly-spread-out-slots默认是false。可以配置成true使得task分散分配在不同的TM中。 Ena ...