天天看點

資料湖實操講解【資料遷移】第四講:如何将 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

直接觀看視訊回放,擷取執行個體講解~

⭐Github連結:

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

不錯過每次直播資訊、探讨更多資料湖 JindoFS+OSS 相關技術問題,歡迎掃碼加入釘釘交流群!

資料湖實操講解【資料遷移】第四講:如何将 Hive 資料按分區歸檔到 OSS