首页 > 编程源码 > Hive学习之路:Hive的数据倾斜

Hive学习之路:Hive的数据倾斜

楼主:资源分享 [官方] · 2020-6-22 ·  浏览5120 · 编程源码 · ID:
1、什么是数据倾斜?
由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点

2、Hadoop 框架的特性
  A、不怕数据大,怕数据倾斜
  B、Jobs 数比较多的作业运行效率相对比较低,如子查询比较多
  C、 sum,count,max,min 等聚集函数,通常不会有数据倾斜问题

文章来源于互联网。
- 版权声明 - 1、本帖所有言论和图片等纯属网友个人意见,与流星社区立场无关;
2、其他单位或个人使用、转载或引用本帖时必须同时征得该帖子作者资源分享流星社区的同意;
3、备注原文地址:https://bbs.liuxingw.com/t/31248.html,可忽略第2条;
4、帖子作者需承担一切因本文发表而直接或间接导致的相关责任;
5、如本帖内容或部分内容转载自其它媒体,这并不代表本站赞同其观点和对其真实性负责;
6、如本帖若为资源类,将仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您安装或使用的设备中彻底删除上述内容;
7、如果您喜欢该程序,请支持正版软件,购买注册,可以得到更好的正版服务;
8、如本帖侵犯到任何版权或违法问题,请立即邮件告知我们,我们将及时予以处理。
161条回复 |  最后回复于2020-6-22

资源分享 [官方]

改变之处:使本身为 null 的所有记录不会拥挤在同一个 reduceTask 了,会由于有替代的 随机字符串值,而分散到了多个 reduceTask 中了,由于 null 值关联不上,处理后并不影响最终结果。
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

(2)不同数据类型关联产生数据倾斜
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

场景说明。
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

用户表中 user_id 字段为 int,log 表中 user_id 为既有 string 也有 int 的类型, 当按照两个表的 user_id 进行 join 操作的时候,默认的 hash 操作会按照 int 类型的 id 进 行分配,这样就会导致所有的 string 类型的 id 就被分到同一个 reducer 当中
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

解决方案。
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

把数字类型 id 转换成 string 类型的 id
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

(3)大小表关联查询产生数据倾斜
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

注意:使用map join解决小表关联大表造成的数据倾斜问题。这个方法使用的频率很高。
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

map join 概念:将其中做连接的小表(全量数据)分发到所有 MapTask 端进行 Join,从 而避免了 reduceTask,前提要求是内存足以装下该全量数据
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

图片如下。
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...
登录注册 后才可进行评论
签到
27人签到
已签0天
  • 46611帖子
  • 1936546热点量
  • 184841火热值