大数据性能优化之Hive优化.doc

大数据性能优化之Hive优化.doc

ID:55768177

大小:73.00 KB

页数:18页

时间:2020-06-06

大数据性能优化之Hive优化.doc_第1页
大数据性能优化之Hive优化.doc_第2页
大数据性能优化之Hive优化.doc_第3页
大数据性能优化之Hive优化.doc_第4页
大数据性能优化之Hive优化.doc_第5页
资源描述:

《大数据性能优化之Hive优化.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Hive性能优化1.概述      本人在工作中总结Hive的常用优化手段和在工作中使用Hive出现的问题。下面开始本篇文章的优化介绍。2.介绍      首先,我们来看看hadoop的计算框架特性,在此特性下会衍生哪些问题?·      数据量大不是问题,数据倾斜是个问题。·      jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次汇总,产生十几个jobs,耗时很长。原因是mapreduce作业初始化的时间是比较长的。·      sum,count,max,min等UDAF,不怕数据倾斜问题,hadoop在m

2、ap端的汇总合并优化,使数据倾斜不成问题。·      count(distinct),在数据量大的情况下,效率较低,如果是多count(distinct)效率更低,因为count(distinct)是按groupby字段分组,按distinct字段排序,一般这种分布方式是很倾斜的。举个例子:比如男uv,女uv,像淘宝一天30亿的pv,如果按性别分组,分配2个reduce,每个reduce处理15亿数据。      面对这些问题,我们能有哪些有效的优化手段呢?下面列出一些在工作有效可行的优化手段:·      好的模型设计事半功倍。·      

3、解决数据倾斜问题。·      减少job数。·      设置合理的mapreduce的task数,能有效提升性能。(比如,10w+级别的计算,用160个reduce,那是相当的浪费,1个足够)。·      了解数据分布,自己动手解决数据倾斜问题是个不错的选择。sethive.groupby.skewindata=true;这是通用的算法优化,但算法优化有时不能适应特定业务背景,开发人员了解业务,了解数据,可以通过业务逻辑精确有效的解决数据倾斜问题。·      数据量较大的情况下,慎用count(distinct),count(distin

4、ct)容易产生倾斜问题。·      对小文件进行合并,是行至有效的提高调度效率的方法,假如所有的作业设置合理的文件数,对云梯的整体调度效率也会产生积极的正向影响。·      优化时把握整体,单个作业最优不如整体最优。      而接下来,我们心中应该会有一些疑问,影响性能的根源是什么?3.性能低下的根源      hive性能优化时,把HiveQL当做M/R程序来读,即从M/R的运行角度来考虑优化性能,从更底层思考如何优化运算性能,而不仅仅局限于逻辑代码的替换层面。      RAC(RealApplicationCluster)真正应用集群

5、就像一辆机动灵活的小货车,响应快;Hadoop就像吞吐量巨大的轮船,启动开销大,如果每次只做小数量的输入输出,利用率将会很低。所以用好Hadoop的首要任务是增大每次任务所搭载的数据量。      Hadoop的核心能力是parition和sort,因而这也是优化的根本。      观察Hadoop处理数据的过程,有几个显著的特征:·      数据的大规模并不是负载重点,造成运行压力过大是因为运行数据的倾斜。·      jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联对此汇总,产生几十个jobs,将会需要30分钟以

6、上的时间且大部分时间被用于作业分配,初始化和数据输出。M/R作业初始化的时间是比较耗时间资源的一个部分。·      在使用SUM,COUNT,MAX,MIN等UDAF函数时,不怕数据倾斜问题,Hadoop在Map端的汇总合并优化过,使数据倾斜不成问题。·      COUNT(DISTINCT)在数据量大的情况下,效率较低,如果多COUNT(DISTINCT)效率更低,因为COUNT(DISTINCT)是按GROUPBY字段分组,按DISTINCT字段排序,一般这种分布式方式是很倾斜的;比如:男UV,女UV,淘宝一天30亿的PV,如果按性别分组

7、,分配2个reduce,每个reduce处理15亿数据。·      数据倾斜是导致效率大幅降低的主要原因,可以采用多一次Map/Reduce的方法,避免倾斜。      最后得出的结论是:避实就虚,用job数的增加,输入量的增加,占用更多存储空间,充分利用空闲CPU等各种方法,分解数据倾斜造成的负担。4.配置角度优化      我们知道了性能低下的根源,同样,我们也可以从Hive的配置解读去优化。Hive系统内部已针对不同的查询预设定了优化方法,用户可以通过调整配置进行控制,以下举例介绍部分优化的策略以及优化控制选项。      4.1列裁剪 

8、     Hive在读数据的时候,可以只读取查询中所需要用到的列,而忽略其它列。例如,若有以下查询:      SELECTa,bFRO

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。