如何通过长尾词优化用户画像,提升开发性能调优效果?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3078个文字,预计阅读时间需要13分钟。
前言:马上就过年了,祝福小兄弟们牛年大吉,牛气冲天!
本期文章分享的是赵老先生在《方法论与工程化解决案例》一书中提到的关于如何在用户画像项目中进行性能调优的案例。
前言
马上就快过年了,祝福小伙伴们牛年大吉,牛气冲天!本期文章分享的是赵老师在《方法论与工程化解决解决方案》一书中提到的关于如何在用户画像项目开发中进行性能调优的例子,希望大家耐心看完后有所收获!
一、数据倾斜调优
数据倾斜是开发画像过程中常遇到的问题,当任务执行一直卡在map 100%、reduce 99%,最后的1%花了几个小时都没执行完时,这时一般是遇到了数据倾斜。
问题出现的原因是当进行分布式计算时,由于某些节点需要计算的数据较多,导致其他节点的reduce阶段任务执行完成时,该节点的任务还没有执行完成,造成其他节点等待该节点执行完成的情况。比如两张大表在join的时候大部分key对应10条数据,但是个别几个key对应了100万条数据,对应10条数据的task很快执行完成了,但对应了100万数据的key则要执行几个小时。
下图便是一个典型的例子。
bb这个key在3个节点上有11条数据,aa和cc在3个节点上分别有2条和1条数据,这些数据都会被拉取到一个task上处理。处理bb这个task的运行时间可能是处理aa和cc的task的运行时间数倍,整体运行速度由最慢的task决定。
下面介绍两种解决数据倾斜问题的方案。
方案一:过滤掉倾斜数据
当少量key重复次数特别多,如果这种key不是业务需要的key,可以直接过滤掉。
本文共计3078个文字,预计阅读时间需要13分钟。
前言:马上就过年了,祝福小兄弟们牛年大吉,牛气冲天!
本期文章分享的是赵老先生在《方法论与工程化解决案例》一书中提到的关于如何在用户画像项目中进行性能调优的案例。
前言
马上就快过年了,祝福小伙伴们牛年大吉,牛气冲天!本期文章分享的是赵老师在《方法论与工程化解决解决方案》一书中提到的关于如何在用户画像项目开发中进行性能调优的例子,希望大家耐心看完后有所收获!
一、数据倾斜调优
数据倾斜是开发画像过程中常遇到的问题,当任务执行一直卡在map 100%、reduce 99%,最后的1%花了几个小时都没执行完时,这时一般是遇到了数据倾斜。
问题出现的原因是当进行分布式计算时,由于某些节点需要计算的数据较多,导致其他节点的reduce阶段任务执行完成时,该节点的任务还没有执行完成,造成其他节点等待该节点执行完成的情况。比如两张大表在join的时候大部分key对应10条数据,但是个别几个key对应了100万条数据,对应10条数据的task很快执行完成了,但对应了100万数据的key则要执行几个小时。
下图便是一个典型的例子。
bb这个key在3个节点上有11条数据,aa和cc在3个节点上分别有2条和1条数据,这些数据都会被拉取到一个task上处理。处理bb这个task的运行时间可能是处理aa和cc的task的运行时间数倍,整体运行速度由最慢的task决定。
下面介绍两种解决数据倾斜问题的方案。
方案一:过滤掉倾斜数据
当少量key重复次数特别多,如果这种key不是业务需要的key,可以直接过滤掉。

