当前位置:   article > 正文

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

hive修改表的存储格式

简介: 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),则会进行合并。具

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/389895
推荐阅读
相关标签
  

闽ICP备14008679号