本期導讀 :【數據遷移】第四講
主題:如何將 Hive 數據按分區歸檔到 OSS
講師:健身,阿里巴巴計算平臺事業部 EMR 技術專家
內容框架:
- 背景/具體功能介紹
- 實現原理詳解
- 使用實例
直播回放鏈接:(3/4講)
https://developer.aliyun.com/live/246750
一、背景/功能簡述
傳統集群架構
- 存儲計算一體
- 存儲量與計算量無法始終匹配
- 存儲無法水平擴展
- 存儲與計算競爭硬盤資源
存儲分層架構
- 計算資源動態伸縮
- 存儲資源使用雲存儲作為 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
二、實現原理
- Jindodistcp 作為底層工具
- 使用 jindodistcp 事務模式
- 使用 HDFS 文件鎖保證同一時間每個分區只有一個作業在操作
- 先修改分區元數據再清理 hdfs 數據確保數據可用
三、使用示例
數據準備
移動分區字段 ds 大於 ‘b’的分區
檢查移動後的分區情況
直接觀看視頻回放,獲取實例講解~https://developer.aliyun.com/live/246750
⭐Github鏈接:
https://github.com/aliyun/alibabacloud-jindofs
不錯過每次直播信息、探討更多數據湖 JindoFS+OSS 相關技術問題,歡迎掃碼加入釘釘交流群!