hive 修改表的存储格式_Hive优化之建表配置参数调优(一)

本文介绍了Hive性能调优中的建表配置优化,包括如何处理小文件问题,如使用Hadoop Archive、SEQUENCEFILE格式、CombineFileInputFormat等,以及设置Hive参数进行输入和输出阶段的合并。此外,文章讨论了表的存储格式,如TEXTFILE、SEQUENCEFILE、AVRO、RCFILE、ORC和PARQUET的优缺点,并对比了压缩效果和执行速度。最后提到了分桶和分区在提升查询效率中的作用。
摘要由CSDN通过智能技术生成

简介: Hive是大数据领域常用的组件之一,主要用于大数据离线数仓的运算,关于Hive的性能调优在日常工作和面试中是经常涉及的一个点,因此掌握一些Hive调优是必不可少的一项技能。影响Hive效率的主要因素有数据倾斜、数据冗余、job的IO以及不同底层引擎配置情况和Hive本身参数和HiveSQL的执行等。本文主要从建表配置参数方面对Hive优化进行讲解。

创建一个普通的表

create table test_user1(id int, name string,code string,code_id string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

查看表信息

DESCRIBE FORMATTED test_user1;

8bc48e5872b60b68d433e4c4e10e4c78.png

我们从该表的描述信息介绍建表时的一些可优化点。

2.1表的文件数

numFiles表示表中含有的文件数,当文件数过多时可能意味着该表的小文件过多,这时候我们可以针对小文件的问题进行一些优化,HDFS本身提供了

解决方案:

1.Hadoop Archive/HAR:将小文件打包成大文件。

2.SEQUENCEFILE格式:将大量小文件压缩成一个SEQUENCEFILE文件。

3.CombineFileInputFormat:在map和reduce处理之前组合小文件。

4.HDFS Federation:HDFS联盟,使用多个namenode节点管理文件。

除此之外,我们还可以通过设置hive的参数来合并小文件。

1.输入阶段合并

需要更改Hive的输入文件格式即参hive.input.format

默认值是org.apache.hadoop.hive.ql.io.HiveInputFormat我们改成org.apache.hadoop.hive.ql.io.CombineHiveInputFormat

这样比起上面对mapper数的调整,会多出两个参数,分别是mapred.min.split.size.per.nodemapred.min.split.size.per.rack,含义是单节点和单机架上的最小split大小。如果发现有split大小小于这两个值(默认都是100MB),则会进行合并。具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值