Flink
文章平均质量分 72
yians
这个作者很懒,什么都没留下…
展开
-
记Flink开发中的两次OOM
记Flink开发中的两次OOM在开发Flink程序中,遇到了两次OOM的处理,挺有代表性的,其中第二次的难度很高,需要对Java虚拟机有很深入的理解。1 第一次第一次问题不是很复杂,我们业务使用RabblitMQ作为数据源,当数据积压时,任务在启动就会导致TaskManager出现OOM的错误。错误现象:An exception occurred processing Appender DefaultConsole-3 org.apache.logging.log4j.core.appender.原创 2022-04-19 23:31:54 · 2841 阅读 · 1 评论 -
如何选择Spark Streaming、Kafka Streaming和Flink
这里写自定义目录标题记录一次流处理引擎选择的过程1、Spark Streaming2、Kafka Streaming3、Flink最后记录一次流处理引擎选择的过程先描述下项目需求,要处理的消息来源为RabbitMQ的队列A,队列A的数据是10万个点位(物联网采集点)数据每秒一次推送产生的,现在的需求是:要新增一些虚拟计算点位,点位建立规则是已有物理点位的计算表达式,比如V001为P001+2*P002。每个计算点位的计算间隔不一样。需要计算的点位数大概有上万个。为了快速的计算这些计算点位,推送到客户端原创 2022-03-23 14:11:23 · 2868 阅读 · 1 评论 -
Flink中KeySelector理解及方法引用的三种形式
泛型编程是框架的基础,Flink中可以传递POJO对象的get方法,来作为获取key的途径,这样给开发者足够大的灵活性。理解这个过程,对于加强对泛型编程的理解有很大的帮助。此外,对于传递方法,还用到了@FunctionInterface,注意这个注解并不是强制性的,但它减少了一些错误发生的可能。KeySelector本身就是一个函数接口,它提供了两个泛化参数:T代表当前处理数据的类型,K代表Key的类型。KeySelector在Flink中用于获取处理数据内的键值。想象一下这样的一个问题:你要对输入的数原创 2021-08-06 18:36:34 · 3994 阅读 · 0 评论 -
Flink重复注册定时器会发生什么
对于一些应用场景,需要定时器来告诉我们什么时候结束并输出结果,我们可能会在KeyedProcessFunction的实现类中写下如下的代码: @Override public void processElement(ItemViewCount value, Context ctx, Collector<String> out) throws Exception { // 每来一条数据,存入List中,并注册定时器原创 2021-08-05 15:44:05 · 1092 阅读 · 2 评论