天天看點

資料湖實操講解【資料遷移】第一講:高效遷移 HDFS 海量檔案到 OSS

本期導讀 :【資料遷移】第一講

主題:高效遷移 HDFS 海量檔案到 OSS

講師:揚禮,阿裡巴巴計算平台事業部 EMR 開發工程師

主要内容:

  • DistCp 介紹
  • Jindo DistCp 介紹
  • 性能優化
  • 功能示範

直播回放連結:

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

背景介紹

為了讓更多開發者了解并使用 JindoFS+OSS,由阿裡雲JindoFS+OSS 團隊打造的專業公開課【資料湖JindoFS+OSS 實操幹貨36講】在每周二16:00 準時直播開講!掃描文章底部二維碼,進釘釘群不錯過每次直播資訊!

内容概述

什麼是 DistCp?

DistCp(分布式拷貝)是用于大規模叢集内部和叢集之間拷貝的工具。它使用 Map/Reduce 實作檔案分發,錯誤處理和恢複,以及報告生成。它把檔案和目錄的清單作為 map 任務的輸入,每個任務會完成源清單中部分檔案的拷貝。

DistCp 工具種類
資料湖實操講解【資料遷移】第一講:高效遷移 HDFS 海量檔案到 OSS
  • 分布式檔案拷貝工具,基于 MapReduce
  • 支援多種資料源(HDFS / OSS / S3 / COS 等)
  • 多種拷貝政策,功能對齊開源 Hadoop DistCp 及 S3 DistCp 等
  • 深度結合 OSS,基于 native 實作的 JindoFS SDK
  • 優化 JobCommitter,性能領先開源工具
現有 HDFS海量檔案同步到 OSS 存在的問題
  • 檔案數量規模大,百/千萬級,開源 DistCp 逾時/OOM 等
  • HDFS 拷貝到 OSS ,效率較慢,Rename 耗時
  • 現有開源工具無法保證資料拷貝一緻性
  • 不支援傳輸時進行歸檔/冷存儲等 OSS 特性
Jindo DistCp 基于 HDFS 海量檔案同步到 OSS 場景優化
  • 分批 Batch,避免檔案數過多/檔案size過大,造成逾時/OOM
  • 定制化 CopyCommitter,實作 No-Rename 拷貝,并保證資料拷貝落地的一緻性
  • 大/小檔案傳輸政策優化
  • 基于 native 實作的 JindoFS SDK,優化讀寫 OSS 性能
性能優化:CopyCommitter – NoRename 拷貝

1、MapReduce JobCommitter

資料湖實操講解【資料遷移】第一講:高效遷移 HDFS 海量檔案到 OSS

2、Jindo CopyCommitter

基于對象存儲系統的 Multipart Upload,結合 OSS 檔案系統層面的定制支援,可以實作在保證資料一緻性前提下無需 Rename 操作的 Job Committer 實作。

資料湖實操講解【資料遷移】第一講:高效遷移 HDFS 海量檔案到 OSS
性能測試

我們做了一個 Jindo DistCp 和 Hadoop DistCp的性能對比,在這個測試中我們以 HDFS 到 OSS 離線資料遷移為主要場景,利用Hadoop 自帶的測試資料集 TestDFSIO 分别生成1000個10M、1000個500M、1000個1G 大小的檔案進行從 HDFS 拷貝資料到 OSS 上的測試過程。

資料湖實操講解【資料遷移】第一講:高效遷移 HDFS 海量檔案到 OSS
Github連結:
https://github.com/aliyun/alibabacloud-jindofs/blob/master/docs/jindo_distcp/jindo_distcp_overview.md

浏覽器打開Github連結,點選對應使用場景,進行具體實踐。

資料湖實操講解【資料遷移】第一講:高效遷移 HDFS 海量檔案到 OSS
執行個體示範
  • 在Github中下載下傳 jindo-distcp-3.5.0.jar
  • 将 jar 包拷貝到可送出 YARN 作業的節點上
  • 選擇 src 和 dest 路徑及合适的參數
  • hadoop jar jindo-distcp-3.5.0.jar --src /data --dest oss://yang-ha/data --parallelism 10
  • 執行指令
  • 檢視進度(指令行/WebUI)

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

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

資料湖實操講解【資料遷移】第一講:高效遷移 HDFS 海量檔案到 OSS