用户画像系列——Spark任务调优实践

news2024/12/26 11:12:21

在画像标签的加工和写入hbase中,我们采用了spark来快速进行处理和写入。但是在实际线上运行的过程中,仍然遇到了不少问题,下面来总结下遇到的一些问题

1.数据倾斜问题

其实spark 数据倾斜思路和hive、mapreduce 数据倾斜思路处理类似,先看运行的任务,找到spark监控,active job -> stage -> task, 最终我们就能找到运行的task,可以看一些运行时长远超其他的task,同时处理的数据量也远超其他task,这种情况就是有数据倾斜了。

然后我们就可以对我们自己的数据进行分析:

可以很明显的看到前两条数据要比后面的其他数据量级要大,因此可以看出来存在数据倾斜。

数据倾斜的思路也是比较简单:

(1)可以在id前加随机前缀,先统计一次,然后去掉前缀再统计,这样就能解决数据倾斜问题了。

(2)或者有一些认为这种数据是脏数据可以直接过滤,丢弃掉也可以,需要根据业务场景进行判断。

2.任务处理很慢

一般这种情况,需要我们去看我们运行慢的任务,如果不存在数据倾斜问题,那就需要去分析运行的jstack 堆栈信息。(多观察刷新几次 观察堆栈信息,看看是不是一直在执行某个方法,说明一直在这里执行)

之前遇到代码死循环(这个明显是代码写错了),一直卡在某个方法里出不来,也是通过查看堆栈信息发现的。

再有的优化手段:textfile 格式 优化成 parquet 格式(parquet格式⽀持⾃动split,当单个文件过大时spark读进来之后可以支持自动split),但是texfile是不支持的。

3.spark oom 问题

(1)driver 端 oom:spark collect 把大数据拉到了driver 端

(2)excutor 端 oom: mapPartitions 提供给了我们更加强大的数据控制力,怎么理解呢?我们可以一次拿到一个分区的数据,那么我们就可以对一个分区的数据进行统一处理,会加大内存的开销,可能会导致 oom 问题也是需要注意的

当然大家,也可以继续看看前面写的用户画像系列文章

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

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

相关文章

LED点阵屏(51单片机)

一、LED点阵屏介绍 1.点阵屏介绍及显示原理 2.开发板对应引脚 单片机工作是弱上拉,低电平强,高电平弱。 操作硬件电路是通过操作寄存器实现的 行:D0~D7 列:P0~P7 用P3口的三根线控制D0~D7,使能端OE,OE…

【Android】kotlin RecyclerView遍历json实现列表数据

需求 效果图如下 : 这个ui看起来简单, 其实要实现几个功能点 1. json数据的遍历 2. RecyclerView实现循环的列表 3. 每块元素里的元素点击 : 未选中的话, 首次点击显示"selected", 点击"selected"则进行下一步数据处理 4. 设置默认的选择的元素, 显示sel…

增加一个按钮,批量获取凭证号

create PROCEDURE Cux_Ar_ServiceLedger_Voucher_ProcOrgId Int ,result Int output AS BEGIN SET NOCOUNT ONDECLARE Date DATETIME IF OrgId 0 or OrgIdBEGIN RAISERROR(N获取当前组织ID失败!, 16, 1) RETURNEND SET Date GETDATE()BEGIN TRANSACTION BEGIN…

职场中这三大效应,读懂受用终身

01 霍桑效应 “霍桑效应”也称“宣泄效应”。 霍桑工厂是一家电器公司的分厂。为了提高员工的工作效率,工厂增设了许多娱乐设施,改善工作环境,提高各项福利,但奇怪的是,成效并不理想。 工厂为此又做了许多尝试&…

zabbix应用教程:基于Nginx页面响应的日志监控用例

作者 乐维社区(forum.lwops.cn)许远 背景:某公司基于 Nginx 服务器搭建的网站,需要监控页面响应耗时的数据,因此该公司搭建了zabbix开源监控系统,当监控到页面响应时间超过3000ms阈值时,就进行告…

C语言 | Leetcode C语言题解之第313题超级丑数

题目&#xff1a; 题解&#xff1a; int nthSuperUglyNumber(int n, int* primes, int primesSize) {long dp[n 1];int pointers[primesSize];for (int i 0; i < primesSize; i) {pointers[i] 0;}long nums[primesSize];for (int i 0; i < primesSize; i) {nums[i] …

Mosh|SQL教程第六弹

一、视图 1、创建视图CREATE VIEW viewname AS 这样就可以在左侧导航栏看到新增的view了&#xff0c;如果没有的话刷新一下就好了 可以把视图当表格使用 或者 注意&#xff1a;视图不存储数据&#xff0c;数据存储在表中 练习&#xff1a;创建一个视图&#xff0c;叫做客户结…

2023华为od机试C卷【掌握单词的个数】Python

2023华为od机试C卷【掌握单词的个数】 问题分析 输入内容&#xff1a; 具体的单词数量和单词列表。一个包含字母和 ? 的字符串&#xff0c;该字符串表示可以用来构词的字符。 目标&#xff1a; 计算哪些单词可以由给定字符以及 ?&#xff08;作为通配符&#xff09;构成。 …

政安晨:【Keras机器学习示例演绎】(五十七)—— 基于Transformer的推荐系统

目录 介绍 数据集 设置 准备数据 将电影评分数据转换为序列 定义元数据 创建用于训练和评估的 tf.data.Dataset 创建模型输入 输入特征编码 创建 BST 模型 开展培训和评估实验 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的…

Python 中的 “私有”(实现)类

在 Python 中&#xff0c;尽管没有严格意义上的私有类&#xff08;private class&#xff09;&#xff0c;但可以通过命名约定和语言特性来模拟实现类似的访问控制。Python 的私有类的概念通常是通过以下几种方式来实现&#xff1a; 1、问题背景 我正在编码一个由两部分组成的…

数值分析——分段低次插值

关键字&#xff1a;Matalb&#xff1b;曲线拟合&#xff1b;高次病态特性&#xff1b;分段低次插值 系列文章目录 数值分析——拉格朗日插值 数值分析——牛顿插值多项式 数值分析——埃尔米特&#xff08;Hermit&#xff09;插值 文章目录 系列文章目录前言一、理论推导1.高次…

Python面试宝典第25题:括号生成

题目 数字n代表生成括号的对数&#xff0c;请设计一个函数&#xff0c;用于能够生成所有可能的并且有效的括号组合。 备注&#xff1a;1 < n < 8。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;["((()))","(()())","(())()"…

泛化的最近点迭代法(Generalized-ICP)

Generalized-ICP算法是由斯坦福大学的Aleksandr V. Segal、Dirk Haehnel和Sebastian Thrun提出的&#xff0c;于2009年在Robotics science and system会议上发表。 GICP是一种ICP算法的变体&#xff0c;其原理与ICP算法相同&#xff0c;之所以称为泛化的ICP算法是因为大多数ICP…

MongoDB性能调优

文章目录 MongoDB性能调优MongoDB性能不佳原因影响MongoDB性能的因素MongoDB性能监控工具mongostatmongotopProfiler模块db.currentOp() MongoDB性能调优 MongoDB性能不佳原因 慢查询阻塞等待硬件资源不足 1,2通常是因为模型/索引设计不佳导致的 排查思路&#xff1a;按1-2…

再论国产数据库的选择

如何选择国产数据库? 上篇写得很水,本来不想继续写了! 毕竟写一篇很费心力,大家觉得好,就点下广告支持下吧! 因为今天看到类总的朋友圈,发个公号文章.里面讲个故事, 数据最前线 关注数据生态&#xff0c;讲述开源故事 13篇原创内容 公众号 某国产数据库救援现场惊魂8小时…

Golang | Leetcode Golang题解之第313题超级丑数

题目&#xff1a; 题解&#xff1a; func nthSuperUglyNumber(n int, primes []int) int {dp : make([]int, n1)m : len(primes)pointers : make([]int, m)nums : make([]int, m)for i : range nums {nums[i] 1}for i : 1; i < n; i {minNum : math.MaxInt64for j : range…

【大模型框架】【推理加速】KV CACHE

1. 思想 核心思想是空间换时间来进行加速 2. 基本原理 transformer是自回归生成模型&#xff0c;abc三个字符预测def 过程是: abc -> d d进行回归得到abc,回归讲究的是回去&#xff0c;如香港回归 abcd -> e 这里abc的运算中间值Q V可以保存下来作为Cache&#xf…

爬猫眼电ying

免责声明:本文仅做分享... 未优化,dp简单实现 from DrissionPage import ChromiumPage import time urlhttps://www.maoyan.com/films?showType2&offset60 pageChromiumPage()page.get(url) time.sleep(2) for i in range(1,20):# 爬取的页数for iu_list in page.eles(.…

c语言指针中“数组名的理解”以及“一维数组传参”的本质

数组名的理解 数组名就是数组首元素的地址。 例如&#xff1a;输入一个数组的所有元素&#xff0c;再打印出来。 另一种写法 以上可以看出&#xff1a;*arri&#xff09; arr[i] 也即是&#xff1a;*(iarr)i[arr] 本质上无区别 1&#xff1a;数组就是数组&#xff0c;是一块…

List 31

ArrayList底层原理 Linkedlist的底层原理 使用场景