hive优化记录----合并小文件压缩输出

本文介绍了Hive数据仓库平台的基本组件,并详细讨论了Hive中的小文件问题及其对性能的影响。通过调整Hive配置参数,如设置mapred.max.split.size、hive.merge.mapfiles等,可以在Map操作前合并小文件,提高程序性能。同时,通过启用输出压缩和选择合适的压缩编码器,如GzipCodec,可以减少IO压力并优化Hive的输出结果。文章还提到了其他可配置的属性,以进一步优化Hive操作。
摘要由CSDN通过智能技术生成

Hive简要介绍

Hive是基于Hadoop的数据仓库平台,由Facebook贡献,其支持类似SQL的结构化查询功能。

Hive的组件总体上可以分为以下几个部分:用户接口(UI)、驱动、编译器、元数据(Hive系统参数数据)和执行引擎。

1) 对外的接口UI包括以下几种:命令行CLI,Web界面、JDBC/ODBC接口;

2) 驱动:接收用户提交的查询HQL;

3) 编译器:解析查询语句,执行语法分析,生成执行计划;

4) 元数据Metadata:存放系统的表、分区、列、列类型等所有信息,以及对应的HDFS文件信息等;

5) 执行引擎:执行执行计划,执行计划是一个有向无环图,执行引擎按照各个任务的依赖关系选择执行任务(Job)。

Hive编译器将HQL代码转换成一组操作符(operator),操作符是Hive的最小操作单元,每个操作符代表了一种HDFS操作或者MapReduce作业。


Hive优化记录

HDFS非常容易存储大数据文件,如果Hive中存在过多的小文件会给namecode带来巨大的性能压力。同时小文件过多会影响JOB的执行,hadoop会将一个job转换成多个task,即使对于每个小文件也需要一个task去单独处理,task作为一个独立的jvm实例,其开启和停止的开销可能会大大超过实际的任务处理时间。

同时我们知道hive输出最终是mr的输出,即reducer(或mapper)的输出,有多少个reducer࿰

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值