关于Hive优化的四种方法总结
来源:互联网 发布:lol全皮肤软件 编辑:程序博客网 时间:2024/04/26 08:30
1、Hive整体架构优化点有哪些?
2、如何在MR阶段进行优化?
3、Hive在SQL中如何优化?
4、Hive框架平台中如何优化?
一、整体架构优化
现在hive的整体框架如下,计算引擎不仅仅支持Map/Reduce,并且还支持Tez、Spark等。根据不同的计算引擎又可以使用不同的资源调度和存储系统。
整体架构优化点:
1、根据不同业务需求进行日期分区,并执行类型动态分区。
相关参数设置:
0.14中默认hive.exec.dynamic.partition=ture
2、为了减少磁盘存储空间以及I/O次数,对数据进行压缩
相关参数设置:
job输出文件按照BLOCK以Gzip方式进行压缩。
map输出结果也以Gzip进行压缩。
对hive输出结果和中间结果进行压缩。
3、hive中间表以SequenceFile保存,可以节约序列化和反序列化的时间
相关参数设置:
hive.query.result.fileformat=SequenceFile
4、yarn优化,在此不再展开,后面专门介绍。
二、MR阶段优化
hive操作符有:
执行流程为:
reduce切割算法:
相关参数设置,默认为:
hive.exec.reducers.max=999
hive.exec.reducers.bytes.per.reducer=1G
reduce task num=min{reducers.max,input.size/bytes.per.reducer},可以根据实际需求来调整reduce的个数。
三、JOB优化
1、本地执行
默认关闭了本地执行模式,小数据可以使用本地执行模式,加快执行速度。
相关参数设置:
hive.exec.mode.local.auto=true
默认本地执行的条件是,hive.exec.mode.local.auto.inputbytes.max=128MB, hive.exec.mode.local.auto.tasks.max=4,reduce task最多1个。 性能测试:
数据量(万) 操作 正常执行时间(秒) 本地执行时间(秒)
170 group by 36 16
80 count 34 6
2、mapjoin
默认mapjoin是打开的, hive.auto.convert.join.noconditionaltask.size=10MB
装载到内存的表必须是通过scan的表(不包括group by等操作),如果join的两个表都满足上面的条件,/*mapjoin*/指定表格不起作用,只会装载小表到内存,否则就会选那个满足条件的scan表。
四、SQL优化
整体的优化策略如下:
五、平台优化
1、hive on tez
2、spark SQL大趋势
总结
上面主要介绍一些优化思想,有些优化点没有详细展开,后面分别介绍yarn的优化细节、SQL详细的优化实例以及我们在Tez、spark等框架优化结果。最后用一句话共勉:边coding,边优化,优化无止境。
来源:github
作者:jacksu
2、如何在MR阶段进行优化?
3、Hive在SQL中如何优化?
4、Hive框架平台中如何优化?
一、整体架构优化
现在hive的整体框架如下,计算引擎不仅仅支持Map/Reduce,并且还支持Tez、Spark等。根据不同的计算引擎又可以使用不同的资源调度和存储系统。
整体架构优化点:
1、根据不同业务需求进行日期分区,并执行类型动态分区。
相关参数设置:
0.14中默认hive.exec.dynamic.partition=ture
2、为了减少磁盘存储空间以及I/O次数,对数据进行压缩
相关参数设置:
job输出文件按照BLOCK以Gzip方式进行压缩。
[AppleScript] 纯文本查看 复制代码
1
2
3
mapreduce.output.fileoutputformat.compress
=
true
mapreduce.output.fileoutputformat.compress.type
=
BLOCK
mapreduce.output.fileoutputformat.compress.codec
=
org.apache.hadoop.io.compress.GzipCodec
map输出结果也以Gzip进行压缩。
[AppleScript] 纯文本查看 复制代码
1
2
mapreduce.map.output.compress
=
true
mapreduce.map.output.compress.codec
=
org.apache.hadoop.io.compress.GzipCodec
对hive输出结果和中间结果进行压缩。
[AppleScript] 纯文本查看 复制代码
1
2
hive.exec.compress.output
=
true
hive.exec.compress.intermediate
=
true
3、hive中间表以SequenceFile保存,可以节约序列化和反序列化的时间
相关参数设置:
hive.query.result.fileformat=SequenceFile
4、yarn优化,在此不再展开,后面专门介绍。
二、MR阶段优化
hive操作符有:
执行流程为:
reduce切割算法:
相关参数设置,默认为:
hive.exec.reducers.max=999
hive.exec.reducers.bytes.per.reducer=1G
reduce task num=min{reducers.max,input.size/bytes.per.reducer},可以根据实际需求来调整reduce的个数。
三、JOB优化
1、本地执行
默认关闭了本地执行模式,小数据可以使用本地执行模式,加快执行速度。
相关参数设置:
hive.exec.mode.local.auto=true
默认本地执行的条件是,hive.exec.mode.local.auto.inputbytes.max=128MB, hive.exec.mode.local.auto.tasks.max=4,reduce task最多1个。 性能测试:
数据量(万) 操作 正常执行时间(秒) 本地执行时间(秒)
170 group by 36 16
80 count 34 6
2、mapjoin
默认mapjoin是打开的, hive.auto.convert.join.noconditionaltask.size=10MB
装载到内存的表必须是通过scan的表(不包括group by等操作),如果join的两个表都满足上面的条件,/*mapjoin*/指定表格不起作用,只会装载小表到内存,否则就会选那个满足条件的scan表。
四、SQL优化
整体的优化策略如下:
- 去除查询中不需要的column
- Where条件判断等在TableScan阶段就进行过滤
- 利用Partition信息,只读取符合条件的Partition
- Map端join,以大表作驱动,小表载入所有mapper内存中
- 调整Join顺序,确保以大表作为驱动表
- 对于数据分布不均衡的表Group by时,为避免数据集中到少数的reducer上,分成两个map-reduce阶段。第一个阶段先用Distinct列进行shuffle,然后在reduce端部分聚合,减小数据规模,第二个map-reduce阶段再按group-by列聚合。
- 在map端用hash进行部分聚合,减小reduce端数据处理规模。
五、平台优化
1、hive on tez
2、spark SQL大趋势
总结
上面主要介绍一些优化思想,有些优化点没有详细展开,后面分别介绍yarn的优化细节、SQL详细的优化实例以及我们在Tez、spark等框架优化结果。最后用一句话共勉:边coding,边优化,优化无止境。
来源:github
作者:jacksu
0 0
- 关于Hive优化的四种方法总结
- 关于Hive优化的四种方法总结
- 关于HIVE优化的四种方法总结
- 关于HiveQL的常用语法总结(四)——其它技巧(hive代码优化)
- Hive部署UDF的四种方法
- hive 数据导入的四种方法
- 关于hive的总结
- 关于C 代码优化的方法总结
- Hive优化的基本方法
- hive优化四
- 四 、Hive逻辑优化
- Hive学习之部署UDF的四种方法
- 关于HIVE的SELECT count(*) 优化
- hive的查询注意事项以及优化总结
- hive的查询注意事项以及优化总结 .
- hive的查询注意事项以及优化总结
- hive的查询注意事项以及优化总结 .
- hive的查询注意事项以及优化总结 .
- 网卡的组成工作原理
- 不让布局被输入法顶上去解决方案
- Spring mvc的国际化显示
- XCode8模拟器崩溃解决办法
- C#结合imgareaselect生成缩略图并截取图片
- 关于Hive优化的四种方法总结
- 1【caffe-Windows】caffe+VS2013+Windows无GPU快速配置教程
- 【bzoj2763】[JLOI2011]飞行路线
- oracle10G/11G官方下载地址集合 直接迅雷下载
- Metasploit曝远程代码执行漏洞:别惹我,我疯起来连自己都黑
- 位操作实现加减乘除
- Android Studio SVN使用和VisualSVN-Server配置(图解)
- Spark性能优化(1)——序列化、内存、并行度、数据存储格式、Shuffle
- 2.【caffe-Windows】cifar实例编译之model的生成