Kafka中的数据本身就是倾斜的,使用FlinkSQL该如何处理

        又是经历了一段不太平的变动,最近算是稳定了点,工作内容又从后端开发转换成了sql boy,又要开始搞大数据这一套了。不同的是之前写实时任务的时候都是用的java代码,新环境却更加偏向与使用flink sql 解决,所以记录下使用flink sql 的一些感悟和遇到的问题吧。

查看反压:

        如果flink任务是这么一坨或者几坨task组合在一起,有些时候是如法看出反压的。无法看出反压的意思是,资源明知已经配置的很大了,反压显示也是正常的绿色,但是数据一直堆积着,这个时候一定要disable chain:pipeline.operator-chaining=false,才能正确的看到是否有反压,以及哪个节点在反压  

Kafka中的数据一读出来就反压了,该如何解决:

        本人遇到了这么一个flink sql任务,kafak中的数据读取出来之后,没有groupby之类的操作,就是与HBase表进行join,然后进行where条件过滤,然后任务就反压了。kafka分区数量为48,程序并行度为200,如下所示:

        因为kafka分区数为48,所以最多也就49个task会读取数据,也就是200的并行度其实很多都没起作用,这个时候就要让flink程序在读取kafka数据之后shuffle一下,将数据均匀的分散到各个task上。查了下 有轮询分区(Round-Robin(rebalance))和 重缩放分区(rescale)两种方式。

Round-Robin(rebalance):

        就是将数据hash到下游的各个task中,数据打算的最散。最终程序也是通过设置rebalance.parallelism解决的数据倾斜的问题。

Rescale:

        也是一种hash方式,但是是一种较为轻量级的负载均衡。它会基于上下游Operator的并行度,将记录以循环的方式输出到下游Operator的每个实例。
        举例: 上游并行度是2,下游是4,则上游一个并行度以循环的方式将记录输出到下游的两个并行度上;上游另一个并行度以循环的方式将记录输出到下游另两个并行度上。

        后续慢慢深入了解FlinkSQl技术和业务吧,希望能产出更多高质量内容文章呀!

参考:

        Flink的八种分区策略源码解读 | Jmx's Blog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/32816.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器人学习和研究的物质基础包含哪些内容?

为啥写这个? 在很多博客里面提及物质基础,没想到询问的也非常多,写一篇详细一点的。 之前的故事 不合格且失败机器人讲师个人理解的自身课程成本情况-CSDN博客 迷失自我无缘多彩世界-2024--CSDN博客 物质基础与情绪稳定的关系-CSDN博客 …

python代理proxy使用

比如有时候python程序中需要下载或者联网点东西,需要代理 1、requests 例子 import requests# 代理服务器的地址和端口 proxy_host your_proxy_server_ip proxy_port your_proxy_server_port# 创建代理字典 proxy {http: fhttp://{proxy_host}:{proxy_port},htt…

6.S081的Lab学习——Lab8: locks

文章目录 前言一、Memory allocator(moderate)提示:解析 二、Buffer cache(hard)解析: 三、Barrier (moderate)解析: 总结 前言 一个本硕双非的小菜鸡,备战24年秋招。打算尝试6.S081,将它的Lab逐一实现,并…

Git代码管理的常用操作

在VS022中,Git的管理要先建立本地或远程仓库,然后commit到本地,最后push到远程代码库。 或者不建立本地的情况,直接拉取已有的远程代码。 Git是一个分布式版本控制系统,用于跟踪和管理文件的变化。它可以记录文件的修…

数据挖掘与分析 个别选择题ID3Apriori算法

选择题 1.当不知道数据所带标签时,可以使用哪种技术促使带同类标签的数据与带其他标签的数据相分离?(聚类) 2.关于K-means算法,正确的描述是:初始值不同,最终结果可能不同 3.K-means算法中的…

收银系统源码-千呼新零售2.0【线下促销】

千呼新零售2.0系统是零售行业连锁店一体化收银系统,包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体,线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货等连锁店使用。 详细介绍请查看下…

活用变量,让Postman的使用飞起来

在 Postman 中使用变量是一种非常强大的功能,它可以极大地增强 API 测试和开发的灵活性和效率。 Postman变量的类型 变量在 Postman 中可以在多个层次设置和使用,包括 全局变量环境变量集合变量局部变量(如在脚本中暂时创建的变量&#xf…

【C语言】解决C语言报错:Stack Overflow

文章目录 简介什么是Stack OverflowStack Overflow的常见原因如何检测和调试Stack Overflow解决Stack Overflow的最佳实践详细实例解析示例1:递归调用过深示例2:分配过大的局部变量示例3:嵌套函数调用过多 进一步阅读和参考资料总结 简介 St…

【昇思初学入门】第五天打卡

网络构建 学习心得 定义神经网络时,可以继承nn.Cell类,在__init__方法中进行子Cell的实例化和状态管理,在construct方法中实现Tensor操作MindSpore默认情况下是以动态图模式运行,但也支持通过设置set_context手工切换为静态图模…

Ubuntu20.04以上 如何清理内存遇到报错如何处理[WARN]Free memory 1234(M)may be NOT ENOUGH

原因 今天遇到一位粉丝像我提出了一个问题,给了我一张截图,上面的报错内容是 [WARN]Free memory 1234(M)may be NOT ENOUGH for webase [WARN]Recommend webase with 2G memory at least. [WARN]Free memory 1234(M)may be NoT ENoUGH for node count […

线程知识点(一)

文章目录 一、线程是什么?二、进程与线程的关系三、种类内核级线程用户级线程混合型线程 总结 一、线程是什么? 线程是程序最基本的运行单位,真正运行的是进程中的线程。 线程是大多数操作系统支持的调度单位, 执行单元&#xf…

初学者应该掌握的MySQL数据库的基本组成部分及概念

MySQL数据库作为一种开源的关系型数据库管理系统,被广泛应用于Web应用开发和数据存储。它具有高性能、易用性和可靠性等特点,是开发者们的首选之一。在本篇文章中,我们将详细介绍MySQL数据库的核心组成部分,帮助你深入理解这个强大…

详解 Macvlan 创建不同容器独立跑仿真(持续更新中)

一、概念介绍 1.1 什么是macvlan macvlan是一种网卡虚拟化技术,能够将一张网卡(Network Interface Card, NIC)虚拟出多张网卡,这意味着每个虚拟网卡都能拥有独立的MAC地址和IP地址,从而在系统层面表现为完全独立的网络…

微课与慕课

一、微课 “微课”是一种教学资源,时长约几分钟,视频或者动画格式,非常符合信息快餐时代大众的视觉驻留规律和认知学习特点。 二、慕课 慕课(MOOC, Massive Open Online Courses)即“大型开放式网络课程”&#xff…

winmail添加gmail和QQ邮箱(现已更新为outlook mail)

想在windows自带的邮件桌面应用里,不仅能访问outlook邮件,也能访问gmail邮件和QQ邮件的方法。 参考文章: Windows 10 的邮件怎么添加并同步 Gmail?​www.zhihu.com/question/53079836/answer/147669935?utm_psn178781450843941…

个人成长的利器:复盘教你如何避免重蹈覆辙

前言 📫 大家好,我是南木元元,热爱技术和分享,欢迎大家交流,一起学习进步! 🍅 个人主页:南木元元 最近忙着学习和工作,更新比较少,期间一直在思考如何才能快速…

React Router是什么?你如何使用它来实现单页面应用的路由?

React Router是一款用于构建单页面应用(SPA)中处理路由的JavaScript库。它允许开发者在不刷新整个页面的情况下进行交互式的用户体验,是React生态系统中非常受欢迎的第三方库之一。React Router不仅提供简单的URL路由管理功能,还帮…

如何使用Gau针对任意指定域名执行URL收集任务

关于Gau Gau是一款功能强大的URL收集工具,该工具可以针对任意指定的域名,从AlienVault的开放威胁交换器、Wayback Machine、Common Crawl平台和URLScan收集并爬取已知的URL地址。 Gau,全称为GetAllUrls。该工具灵感来源于Tomnomnom的wayback…

2024.06.20 刷题日记

2. 两数相加 这道题目的思路就是模拟,好处是逆序的,不用反转链表: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {// 创建一个新的链表节点,作为返回结果的头节点ListNode* dummyHead new ListNode(0);ListNode *p l1…

【Linux】进程间通信_1

文章目录 七、进程间通信1. 进程间通信分类管道 未完待续 七、进程间通信 进程间由于 进程具有独立性 ,所以不可以直接进行数据传递。但是我们通常需要多个进程协同,共同完成一件事,所以我们需要进程间通信的手段。进程间通信的本质就是先让…