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

数据湖技术圈

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

主题:对 Hive 数仓表进行高效小文件合并

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

内容框架:

  • 背景介绍

  • 主要功能

  • 实操演示

直播回看链接:(22讲)

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

1

背景介绍  

小文件如何产生    

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

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

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

小文件带来的问题    

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

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

小文件解决方案

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

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

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

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

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

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

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

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

2

主要功能  

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> 显示表格或者分区的状态,如果表文件过小会提示文件过小

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

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

3

实操演示  

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

点击文章下方阅读原文,直接观看实操36讲公开课,获取讲师实例讲解~


Github链接:

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


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值