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

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

楼主:资源分享 [官方] · 2020-6-22 ·  浏览5130 · 编程源码 · 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

资源分享 [官方]

默认情况下,输入分片大小和 HDFS 集群默认数据块大小一致,也就是默认一个数据块,启 用一个 MapTask 进行处理,这样做的好处是避免了服务器节点之间的数据传输,提高 job 处 理效率
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

两种经典的控制 MapTask 的个数方案:减少 MapTask 数或者增加 MapTask 数
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

1、 减少 MapTask 数是通过合并小文件来实现,这一点主要是针对数据源
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

2、 增加 MapTask 数可以通过控制上一个 job 的 reduceTask 个数
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

因为 Hive 语句最终要转换为一系列的 MapReduce Job 的,而每一个 MapReduce Job 是由一 系列的 MapTask 和 ReduceTask 组成的,默认情况下, MapReduce 中一个 MapTask 或者一个 ReduceTask 就会启动一个 JVM 进程,一个 Task 执行完毕后, JVM 进程就退出。这样如果任 务花费时间很短,又要多次启动 JVM 的情况下,JVM 的启动时间会变成一个比较大的消耗, 这个时候,就可以通过重用 JVM 来解决: set mapred.job.reuse.jvm.num.tasks=5
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

七、小文件合并
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

文件数目过多,会给 HDFS 带来压力,并且会影响处理效率,可以通过合并 Map 和 Reduce 的 结果文件来消除这样的影响:
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

八、设置合理的 reduceTask 的数量
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

Hadoop MapReduce 程序中,reducer 个数的设定极大影响执行效率,这使得 Hive 怎样决定 reducer 个数成为一个关键问题。遗憾的是 Hive 的估计机制很弱,不指定 reducer 个数的情 况下,Hive 会猜测确定一个 reducer 个数,基于以下两个设定:
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...

资源分享 [官方]

1、hive.exec.reducers.bytes.per.reducer(默认为 256000000)
发布于2020-6-22

回复列表

  • 内容加载中...

说点什么...
登录注册 后才可进行评论
签到
57人签到
已签0天
  • 46621帖子
  • 1936580热点量
  • 184871火热值