数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS

本期导读 :【数据迁移】第四讲

主题:如何将 Hive 数据按分区归档到 OSS
讲师:健身,阿里巴巴计算平台事业部 EMR 技术专家
内容框架:
  • 背景/具体功能介绍
  • 实现原理详解
  • 使用实例
直播回放链接:(3/4讲)

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

一、背景/功能简述

传统集群架构

  • 存储计算一体
  • 存储量与计算量无法始终匹配
  • 存储无法水平扩展
  • 存储与计算竞争硬盘资源

数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS

存储分层架构

  • 计算资源动态伸缩
  • 存储资源使用云存储作为 HDFS 的替代或补充
  • 相比存算分离架构,对于已有 HDFS 数据比较平滑,可以逐渐过渡到存算分离架构

数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS

数据仓库

  • 数据仓库是大数据的典型场景
  • 每天的 ETL 作业新增大量数据
  • Hive 支持分区表,使用分区可以快速裁剪数据
  • Hive 数仓中大量 Hive 表以时间日期作为分区字段
  • 在数仓中很多表的较老的日期分区平常一般不会被访问,可以考虑把这部分数据移出 HDFS
  • Hive 的每个分区都有自己的 storagedescriptor,可以有单独的存储路径

分区表的结构

partitioned_table_xx

  • dt=2021-05-16/category=1/
  • dt=2021-05-16/category=2/
  • dt=2021-05-16/category=5/
  • dt=2021-05-16/category=8/
  • dt=2021-05-15/category=2/
  • dt=2021-05-15/category=3/
  • dt=2021-05-15/category=4/
  • ……

使用 JindoTable 按分区归档数据

  • 在本地盘机型上,HDFS 可以提供较好的性能,对集群已有存储空间也能较好利用
  • 一般情况下用不到的数据移动到 OSS,释放集群存储空间,减小NameNode 压力
  • 需要读取这部分数据时,也可以直接从 OSS 读取,不影响上层作业
  • 每天 ETL 完成后可以移动数据

⭐具体文档下载和参考见 Github:
https://github.com/aliyun/alibabacloud-jindofs/blob/master/docs/tools/table_moveto.md

二、实现原理

  • Jindodistcp 作为底层工具
  • 使用 jindodistcp 事务模式
  • 使用 HDFS 文件锁保证同一时间每个分区只有一个作业在操作
  • 先修改分区元数据再清理 hdfs 数据确保数据可用

数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS

三、使用示例

数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS

数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS

数据准备

数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS

移动分区字段 ds 大于 ‘b’的分区

数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS

检查移动后的分区情况

数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS

直接观看视频回放,获取实例讲解~https://developer.aliyun.com/live/246750


⭐Github链接:
https://github.com/aliyun/alibabacloud-jindofs

不错过每次直播信息、探讨更多数据湖 JindoFS+OSS 相关技术问题,欢迎扫码加入钉钉交流群!
数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS

上一篇:数据湖实操讲解【数据迁移】第三讲:如何将 HDFS 海量文件归档到OSS


下一篇:阿里云大数据&AI实战宝典2021