- 博客(9)
- 收藏
- 关注
原创 Java Nio之selector
我们先看看传统I/O模型工作模式:每条socket链路都由一个单独的线程负责处理,这对于大容量、高并发的应用程序来说,使用上千万个线程来处理请求几乎是不可能实现的。多路复用IO模型的工作模式:在多路复用IO模型中,只需要使用一个线程就可以管理多个socket,并负责处理对应I/O事件。这对于构建高并发、大容量的服务端应用程序来说是非常有意义。从图中我们可以看出,多路复用IO模型中,使用了一个Selector对象来管理多个通道,这是实现单个线程可以高效地处理多个socket上I/O事件
2021-08-07 14:49:38 533
原创 spark 内存溢出导致executor挂掉的原因
通常我看看到的表象是类似于 shuffle fetch fail ..caused by 某个host lost connection 这就是内存溢出挂掉了。为什么会出现这种情况呢。1. 首先对于缓存非序列话数据的集合都实现了SizeTracker接口类,该接口有估计集合大小的方法,而SizeTracker接口类实际使用的是采样估计,在两次较为准确的采样估计之间,集合的大小是通过平均数计算的方法得到的大小,就容易导致如果在前几次更新的数据较小导致平均数较小,而现在数据较大,计算得到的大小远小于实际大小
2021-07-29 00:03:38 701
原创 flink 写入kafka报错 *** ms has passed since batch creation plus linger time
首先我们来看看batchsize 和linger timeKafka需要在吞吐量和延迟之间取得平衡,可以通过下面两个参数控制.batch.size 当多个消息发送到相同分区时,生产者会将消息打包到一起,以减少请求交互. 而不是一条条发送 批次的大小可以通过batch.size 参数设置.默认是16KB 较小的批次大小有可能降低吞吐量(批次大小为0则完全禁用批处理)。 一个非常大的批次大小可能会浪费内存。因为我们会预先分配这个资源。例子比如说发送消息的频率就是每秒...
2021-07-02 15:54:29 9579 3
转载 记录Flink1.9线上checkpoint失败的问题
记录Flink1.9线上checkpoint失败的问题最新在线上更新了代码之后导致了任务在消费kafka数据的时候,突然就不消费数据了,发现原因在公司的可视化界面中,看不到数据的更新,进入flink监控页面中看到任务没有failover过的记录任务界面虽然任务在正常的运行中,但实际情况是已经不消费数据了,最开始以为代码有问题,经过检查发现代码没有问题,然后查看checkpoint的情况,发现了问题,flink在做checkpoint的时候出现了失败checkpoint失.
2021-01-26 10:58:01 942
原创 flink rich function的open和close方法执行时机
我们在使用flink的时候,经常会有自定义函数的时候,我们可以继承相关的richXXXFunction类,这个类里面会有open,close方法进行相关初始化和关闭的操作,那么这些方法是什么时候执行的呢?带着这个问题,我们以自定义SourceFunction为例,进行研究。我们可以自定义source,也比较方便,extends RichSourceFunction 这个类就可以实现,下面的例子就是我们定义一个mysql的sourcepublic class MySource extends Ric
2021-01-23 17:34:25 10732 5
转载 Flink中异步AsyncIO的实现 (源码分析)
Flink中异步AsyncIO的实现 (源码分析)先上张图整体了解Flink中的异步io阿里贡献给flink的,优点就不说了嘛,官网上都有,就是写库不会柱塞性能更好然后来看一下, Flink 中异步io主要分为两种 一种是有序Ordered 一种是无序UNordered主要区别是往下游output的顺序(注意这里顺序不是写库的顺序既然都异步了写库的顺序自然是无法保证的),有序的会按接收的顺序继续往下游output发送,无序就是谁先处理完谁就先往下游发送两张图了解这两种模.
2021-01-23 12:22:57 152
原创 leetcode23:合并K个升序链表
思路:常规思路/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next
2021-01-22 11:58:01 72
原创 flink keyby操作的原理
对比spark:spark的keyby操作是按照key将所有的value聚合成一个collectionflink的keyby:则主要是将相同key的元素拉到同一个partition,因此也会在同一个task中被处理,但是元素与元素之间并没有聚合的操作。...
2021-01-20 14:49:55 3103
转载 mapper类中SetUp函数详解
hadoop中的MapReduce框架里已经预定义了相关的接口,其中如Mapper类下的方法setup()和cleanup()。----setup()此方法被MapReduce框架仅且执行一次,在执行Map任务前,进行相关变量或者资源的集中初始化工作。若是将资源初始化工作放在方法map()中,导致Mapper任务在解析每一行输入时都会进行资源初始化工作,导致重复,程序运行效率不高!...
2019-03-05 10:50:39 1690
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人