Hive优化--文件格式

1.      Hive调优前相关规划设计

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供Hive SQL(简称HQL)查询功能,可以将HQL语句转换为MapReduce、Tez、Spark任务运行。本文仅讨论Hive on MapReduce的性能调优场景。

在进行Hive参数调优和SQL调优之前,要进行相应的规划设计,包括:Hive表使用高效的文件格式Hive表文件及中间文件使用合适的文件压缩格式根据业务特征创建分区表以及创建分桶表

1.1.    Hive表文件使用高效的文件格式

(1)建议使用ORC

ORC文件格式可以提供一种高效的方法来存储Hive数据,运用ORC可以提高Hive的读、写以及处理数据的性能。

以下两种场景需要应用方权衡是否使用ORC

(a)文本文件加载到ORC格式的Hive表的场景:由于文本格式到ORC,需要耗费较高的CPU计算资源,相比于直接落地成文本格式Hive表而言加载性能会低很多;

(b)Hive表作为计算结果数据,导出给Hadoop之外的外部系统读取使用的场景:ORC格式的结果数据,相比于文本格式的结果数据而言其易读性低很多。

除以上两种场景外,其他场景均建议使用ORC作为Hive表的存储格式。

(2)考虑使用Parquet

Parquet的核心思想是使用“record shredding and assembly algorithm”来表示复杂的嵌套数据类型,同时辅以按列的高效压缩和编码技术,实现降低存储空间,提高IO效率,降低上层应用延迟。

Parquet是语言无关的,而且不与任何一种数据处理框架绑定在一起,适配多种语言和组件,能够与Parquet配合的组件有:

查询引擎:Hive、Impala、Pig;

计算框架:MapReduce、Spark、Cascading;

数据模型:Avro、Thrift、Protocol Buffers、POJOs。

对于Impala和Hive共享数据和元数据的场景,建议Hive表存储格式为Parquet。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值