雲計算

數據湖實操講解【數據遷移】第一講:高效遷移 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 工具種類

1.png

Jindo DistCp 介紹
  • 分佈式文件拷貝工具,基於 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

2.png

2、Jindo CopyCommitter

基於對象存儲系統的 Multipart Upload,結合 OSS 文件系統層面的定製支持,可以實現在保證數據一致性前提下無需 Rename 操作的 Job Committer 實現。
3.png

性能測試

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

Github鏈接:

https://github.com/aliyun/alibabacloud-jindofs/blob/master/docs/jindo_distcp/jindo_distcp_overview.md

瀏覽器打開Github鏈接,點擊對應使用場景,進行具體實踐。
5.png

實例演示
  • 在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)

直接觀看視頻回放,獲取實例講解~https://developer.aliyun.com/live/246728


不錯過每次直播信息、探討更多數據湖 JindoFS+OSS 相關技術問題,歡迎掃碼加入釘釘交流群!

新建項目 (6).jpg

Leave a Reply

Your email address will not be published. Required fields are marked *