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

本期导读 :【数据迁移】第四讲
主题:如何将 Hive 数据按分区归档到 OSS
讲师:健身,阿里巴巴计算平台事业部 EMR 技术专家
内容框架:
背景/具体功能介绍
实现原理详解
使用实例
直播回看链接:(3/4讲)
https://developer.aliyun.com/live/246750
1
背景/功能简述
传统集群架构
存储计算一体
存储量与计算量无法始终匹配
存储无法水平扩展
存储与计算竞争硬盘资源

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

数据仓库
数据仓库是大数据的典型场景
每天的 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
2
实现原理
Jindodistcp 作为底层工具
使用 jindodistcp 事务模式
使用 HDFS 文件锁保证同一时间每个分区只有一个作业在操作
先修改分区元数据再清理 hdfs 数据确保数据可用

3
使用示例
jindo table -moveTo -t <dbName.tableName> -d <destination path> [-c "<condition>" | -fullTable] [-b/-before <before days>] [-p/-parallel <parallelism>] [-o/-overWrite] [-r/-removeSource] [-e/-explain] [-l/-logDir <log directory>]

数据准备

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

检查移动后的分区情况

点击文章下方阅读原文,直接观看第二课(3/4讲)视频回放,获取实例讲解~
⭐Github链接:
https://github.com/aliyun/alibabacloud-jindofs

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


数据湖技术圈
长按扫码关注公众号
获取最新技术资讯
更多推荐
所有评论(0)