对 Hive 数仓表进行高效小文件合并 | 学习笔记

简介: 快速学习对 Hive 数仓表进行高效小文件合并。

开发者学堂课程【数据湖 JindoFS + OSS 实操干货36讲对 Hive 数仓表进行高效小文件合并】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/833/detail/13982


Hive 数仓表进行高效小文件合并

 

内容介绍

一、背景介绍

二、主要功能


一、背景介绍

1)小文件如何产生

l  动态分区插入数据,产生大的小文件,从而导致 map 数剧增。

l  reduce 数量越多,小文件也越多(r educe 的个数和输出文件是对应的)

l  数据源本身就包含大量的小文件。

2)小文件带来的问题

l  小文件会开很多 map, 一个 map 开一个 JVM 去执行,所以这些任务的初始化,启动,执行会浪费大量的资源,严重影响性能。

l  小文件会给底层文件系统带来很大压力,如在在 HDFS 中,每个小文件对象约占150byte,如果小文件过多会占用大量内存。这样 NameNode 内存容量严重制约了集群的扩展

3)小文件解决方案

l  从小文件产生的途经就可以从源头上控制小文件数量

l  使用 Sequencefile 作 为表存储格式,不要用 textfile,在一定程度上可以减少小文件。

l  减少 reduce 的 数量(可以使用参数进行控制)

l  少用动态分区,用时记得按 distribute by 分区。

l  对于已有的小文件,我们可以通过以下几种方案解决

l  通过参数进行调节,设置 map/reduce 端的相关参数。

l  重建表,建表时减少 reduce 数量。

l  使用 hadoop archive 命令把小文件进行归档。

 

二、主要功能

1JindoTable

l  JindoTable 提供表或分区级别的热度统计、存储分层和表文件优化的功能,常见命令如下:

l  -accessStat/-leastUseStat

l  -cache/-uncache/-archive/-unarchive/-archiveTable/-unarchiveTable/ -status

l  -optimize

l  -showTable/-showPartition/-listTables

l  -dumpmc

l  -moveTo

2Hive 数仓表小文件合并

l  Jindo table- -showTable/-showPartition -t  -p

l  显示表格或者分区的状态,如果表文件过小会提示文件过小

l  Jindo table - optimize  优化表存储层的数据组织

 

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
SQL 分布式计算 关系型数据库
基于云服务器的数仓搭建-hive/spark安装
本文介绍了在本地安装和配置MySQL、Hive及Spark的过程。主要内容包括: - **MySQL本地安装**:详细描述了内存占用情况及安装步骤,涉及安装脚本的编写与执行,以及连接MySQL的方法。 - **Hive安装**:涵盖了从上传压缩包到配置环境变量的全过程,并解释了如何将Hive元数据存储配置到MySQL中。 - **Hive与Spark集成**:说明了如何安装Spark并将其与Hive集成,确保Hive任务由Spark执行,同时解决了依赖冲突问题。 - **常见问题及解决方法**:列举了安装过程中可能遇到的问题及其解决方案,如内存配置不足、节点间通信问题等。
基于云服务器的数仓搭建-hive/spark安装
|
SQL 数据库 HIVE
hive数仓 ods层增量数据导入
根据业务需求,当表数据量超过10万条时采用增量数据导入,否则全量导入。增量导入基于`create_date`和`modify_date`字段进行,并确保时间字段已建立索引以提升查询效率。避免在索引字段上执行函数操作。创建增量表和全量表,并按日期进行分区。首次导入全量数据,后续每日新增或变更数据保存在增量表中,通过全量表与增量表的合并保持数据一致性。
799 13
|
SQL 缓存 关系型数据库
ClickHouse(19)ClickHouse集成Hive表引擎详细解析
Hive引擎允许对HDFS Hive表执行 `SELECT` 查询。目前它支持如下输入格式: -文本:只支持简单的标量列类型,除了 `Binary` - ORC:支持简单的标量列类型,除了`char`; 只支持 `array` 这样的复杂类型 - Parquet:支持所有简单标量列类型;只支持 `array` 这样的复杂类型
690 1
|
SQL 数据采集 分布式计算
Hive 数仓及数仓设计方案
数仓整合企业数据,提供统一出口,用于数据治理。其特点包括面向主题集成和主要支持查询操作。数仓设计涉及需求分析(如咨询老板、运营人员和行业专家)、确定主题指标(如电商的转化率)、数据标准设定、规模与成本计算、技术选型(如Hadoop生态组件)以及数据采集和操作。设计流程涵盖从理解需求到实施SQL函数和存储过程的全过程。
655 3
|
SQL 存储 算法
【Hive】Hive 小文件过多怎么解决?
【4月更文挑战第16天】【Hive】Hive 小文件过多怎么解决?
|
SQL 关系型数据库 MySQL
Hive 表注释乱码解决
Hive元数据在MySQL默认使用`latin1`字符集导致注释乱码。可通过修改MySQL配置文件`/etc/my.cnf`,在`[mysqld]`和末尾添加`character-set-server=utf8`等设置,重启MySQL。然后在Hive数据库中调整表字段、分区字段、索引注释的字符集。注意,这仅对新表生效。测试创建带注释的Hive表,问题解决。
759 0
|
SQL HIVE
Hive表删除数据不支持使用Delete From...
Hive表删除数据不支持使用Delete From...
950 0
|
SQL 数据库 HIVE
Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
【4月更文挑战第8天】Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
2443 0
|
SQL 数据采集 数据挖掘
大数据行业应用之Hive数据分析航班线路相关的各项指标
大数据行业应用之Hive数据分析航班线路相关的各项指标
574 1
|
SQL 分布式计算 大数据
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
本文深入介绍 Hive 与大数据融合构建强大数据仓库的实战指南。涵盖 Hive 简介、优势、安装配置、数据处理、性能优化及安全管理等内容,并通过互联网广告和物流行业案例分析,展示其实际应用。具有专业性、可操作性和参考价值。
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南