Hive优化方法.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hive优化方法

Hive优化方法简介 目录 为什么要优化 如何优化 如何排查 常见问题 注意事项 Hive-0.13新特性 为什么要优化 Hive使用简单 门槛低 容易造成误用 为什么要优化 低效的查询语句会带来哪些问题? 耗时长 浪费集群资源 某任务查询涉及分区表,但未限制分区,导致任务map起了好几万个map 任务类型 是否优化 耗时 Sqoop任务A 否 3hrs, 58mins, 35sec Sqoop任务A 是 1hrs, 9mins, 17sec 如何优化 减少处理数据量 如何合理的设置map、reduce个数 小文件合并 Shuffle过程优化 JOIN优化 数据倾斜优化 Hive执行 Hive执行其实是将hql语句转换为MapReduce任务进行运行。 MAP Reduce Shuffle Hive执行 以一个GroupBy查询为例: logs name area A China A China A China B Japan select name,count(*) from logs group by name fileA fileB Hive执行 select name,count(*) from logs group by name logs name area A China A China logs name area A China B Japan key value A 2 key value A 1 B 1 MAP key value A 2 A 1 key value B 1 Shuffle Reduce key value A 3 key value B 1 hive.map.aggr 减少处理数据量 分区裁剪 查询涉及分区表时,在WHERE子句或ON子句中限制分区范围 列裁剪 只读取查询中需要用到的列,忽略其他不关心的列 select * from … select t.col1,… from … 合理设置map、reduce个数 增加map/reduce数,提高并发度,可以加快计算速度,但…… 是不是map 、reduce个数越多越好呢? 合理设置map、reduce个数 那么设置过多task会造成哪些影响呢? 从单一任务角度看 Task overhead过大 调度成本高 从用户资源调度角度看 抢占资源,造成任务拥堵 合理设置map数 影响Map个数的因素: hdfs块大小(dfs.block.size: 128M) 文件的大小 文件的个数 splitsize的大小( mapred.max.split.size 和mapred.min.split.size ) splitSize=Math.max(minSize, Math.min(maxSize, blockSize)) 合理设置map个数 建议值 128MB~512MB/Task 调大map个数 调小mapred.max.split.size 调小map个数 调大mapred.max.split.size 合理设置reduce个数 在未指定reduce个数的情况下,计算公式如下: reducers = Math.min(maxReducers, totalInputFileSize/bytesPerReducer) maxReducers由参数hive.exec.reducers.max设置,默认999 bytesPerReducer由参数hive.exec.reducers.bytes.per.reducer 设置,默认1G 极端:大数据量Count(1) 情况 合理设置reduce个数 建议值 512MB~1GB/Task 调整reduce个数 通过mapred.reduce.tasks或mapreduce.job.reduces设置 Map Output Bytes 小文件合并——输入合并 输入是大量小文件的影响: Overhead过大:map task 调度启动时间:4~6s 实际计算时间很小 输入数据是大量小文件怎么办? 考虑输入合并 小文件合并——输入合并 输入合并示例: set hive.input.format = binehiveinputformat; set mapred.max.split.size = 536870912; //512MB set mapred.min.split.size = 134217728; //128MB 小文件合并——输出合并 若任务A输出很多小文件,则后续的任务B/C/D均要做相应的优化处理。 如何合并输出小文件? 任务A 任务B 结果表 输入 输出 输出 输入 任务C 输入 输入 任务D 输出 输出 小文件合并——输出合并

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档