数据湖实操讲解【 JindoTable 计算加速】第二十二讲:对 Hive 数仓表进行高效小文件合并

简介: 数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播! 扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs

本期导读 :【JindoTable 计算加速】第二十二讲


主题:对 Hive 数仓表进行高效小文件合并d+JindoFSOSS 上数据进行训练加速

讲师:辰石,阿里巴巴计算平台事业部 技术专家


内容框架:

  • 背景介绍
  • 主要功能
  • 实操演示


直播回放链接:(22讲)

https://developer.aliyun.com/live/247112

一、背景介绍

小文件如何产生    

  • 动态分区插入数据,产生大量的小文件,从而导致 map 数量剧增
  • reduce 数量越多,小文件也越多( reduce 的个数和输出文件是对应的)
  • 数据源本身就包含大量的小文件

小文件带来的问题    

  • 小文件会开很多 map,一个 map 开一个 JVM 去执行,所以这些任务的初始化,启动,执行会浪费大量的资源,严重影响性能
  • 小文件会给底层文件系统带来很大压力, 如在 HDFS 中,每个小文件对象约占150 byte,如果小文件过多会占用大量内存。这样 NameNode 内存容量严重制约了集群的扩展。

小文件解决方案

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

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

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

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

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

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

   • 重建表,建表时减少 reduce 数量

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

二、主要功能

JindoTable

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

   • -accessStat/-leastUseStat

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

   • -optimize

   • -showTable/-showPartition/-listTables

   • -dumpmc

   • -moveTo

Hive表小文件合并

  • Jindo table –showTable/-showPartition –t <db.tablename> -p <partitionSpec> 显示表格或者分区的状态,如果表文件过小会提示文件过小

image.png

image.png

  • Jindo table –optimize <db.tablename> 优化表存储层的数据组织

image.png

  • Jindo table –optimize <db.tablename> 优化后检查表的状态以及目录格式如下

image.png

image.png


三、实操演示


  • 对 hive 数仓表进行小文件高效合并演示





点击回放链接,直接观看第22讲视频回放,获取讲师实例讲解:

   https://developer.aliyun.com/live/247112




Github链接:

https://github.com/aliyun/alibabacloud-jindofs


不错过每次直播信息、探讨更多数据湖 JindoFS+OSS 相关技术问题,欢迎扫码加入钉钉交流群!

69c0a02cc68742fca5d49d92413dc67a.png

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
SQL 分布式计算 大数据
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门
401 0
|
SQL 存储 大数据
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 语法与概念
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 语法与概念
311 0
|
SQL 存储 分布式数据库
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
893 0
|
7月前
|
存储 人工智能 分布式计算
数据不用搬,AI直接炼!阿里云AnalyticDB AI数据湖仓一站式融合AI+BI
阿里云瑶池旗下的云原生数据仓库AnalyticDB MySQL版(以下简称ADB)诞生于高性能实时数仓时代,实现了PB级结构化数据的高效处理和分析。在前几年,为拥抱大数据的浪潮,ADB从传统数仓拓展到数据湖仓,支持Paimon/Iceberg/Delta Lake/Hudi湖格式,为开放的数据湖提供数据库级别的性能、可靠性和管理能力,从而更好地服务以SQL为核心的大规模数据处理和BI分析,奠定了坚实的湖仓一体基础。
|
SQL 分布式计算 关系型数据库
基于云服务器的数仓搭建-hive/spark安装
本文介绍了在本地安装和配置MySQL、Hive及Spark的过程。主要内容包括: - **MySQL本地安装**:详细描述了内存占用情况及安装步骤,涉及安装脚本的编写与执行,以及连接MySQL的方法。 - **Hive安装**:涵盖了从上传压缩包到配置环境变量的全过程,并解释了如何将Hive元数据存储配置到MySQL中。 - **Hive与Spark集成**:说明了如何安装Spark并将其与Hive集成,确保Hive任务由Spark执行,同时解决了依赖冲突问题。 - **常见问题及解决方法**:列举了安装过程中可能遇到的问题及其解决方案,如内存配置不足、节点间通信问题等。
基于云服务器的数仓搭建-hive/spark安装
|
SQL 存储 Java
Hive教程(09)- 彻底解决小文件的问题
Hive教程(09)- 彻底解决小文件的问题
1539 1
|
SQL 数据库 HIVE
hive数仓 ods层增量数据导入
根据业务需求,当表数据量超过10万条时采用增量数据导入,否则全量导入。增量导入基于`create_date`和`modify_date`字段进行,并确保时间字段已建立索引以提升查询效率。避免在索引字段上执行函数操作。创建增量表和全量表,并按日期进行分区。首次导入全量数据,后续每日新增或变更数据保存在增量表中,通过全量表与增量表的合并保持数据一致性。
678 13
|
存储 对象存储 云计算
阿里云EMR数据湖文件系统问题之JindoFS处理大量小文件的问题如何解决
阿里云EMR数据湖文件系统问题之JindoFS处理大量小文件的问题如何解决
144 0
|
SQL 数据采集 分布式计算
Hive 数仓及数仓设计方案
数仓整合企业数据,提供统一出口,用于数据治理。其特点包括面向主题集成和主要支持查询操作。数仓设计涉及需求分析(如咨询老板、运营人员和行业专家)、确定主题指标(如电商的转化率)、数据标准设定、规模与成本计算、技术选型(如Hadoop生态组件)以及数据采集和操作。设计流程涵盖从理解需求到实施SQL函数和存储过程的全过程。
600 3
|
SQL 存储 算法
【Hive】Hive 小文件过多怎么解决?
【4月更文挑战第16天】【Hive】Hive 小文件过多怎么解决?