全部產品
Search
文件中心

E-MapReduce:JindoTable SDK模式歸檔和解凍命令介紹

更新時間:Jul 01, 2024

JindoTable SDK模式提供archiveTable和unarchiveTable命令,可以在不依賴Jindo Namespace Service的情況下進行歸檔和解凍等操作。本文為您介紹archiveTable和unarchiveTable命令的使用方法。

前提條件

  • 已建立叢集,詳情請參見建立叢集
  • 待歸檔的資料必須是表資料(可以是分區表或非分區表),且已經位於阿里雲Object Storage Service。

背景資訊

JindoTable原有archive和unarchive命令可以對OSS上的表或分區進行歸檔或解凍等操作,但archive和unarchive命令依賴SmartData組件Jindo Namespace Service。現在新增的archiveTable和unarchiveTable命令,可以在不依賴Jindo Namespace Service的情況下進行歸檔和解凍等操作。

新增的archiveTable和unarchiveTable命令與原有archive和unarchive命令的主要區別為:
  • 可以在未部署SmartData服務的叢集上執行。例如,非EMR的使用者自建叢集。
  • 可以通過傳入過濾參數,一次應用於大量分區,多線程執行。如果本地多線程仍不能滿足需求,還可以啟動MapReduce任務在整個叢集上執行。

原有archive和unarchive命令的詳細資料,請參見JindoTable使用說明

使用限制

EMR-3.36.0及後續版本或EMR-5.2.0及後續版本的叢集,支援新增的archiveTable和unarchiveTable命令。

archiveTable命令

archiveTable命令可以對OSS上的表或分區進行歸檔。

  1. 通過SSH方式登入叢集,詳情請參見登入叢集
  2. 執行以下命令,擷取協助資訊。
    jindo table -help archiveTable
    archiveTable命令語句格式如下所示。
    -archiveTable -t <dbName.tableName> \
    -i/-a/-ca \
    [-c "<condition>" | -fullTable] \
    [-b/-before <before days>] \
    [-p/-parallel <parallelism>] \
    [-mr/-mapReduce] \
    [-e/-explain] \
    [-w/-workingDir <working directory>] \
    [-l/-logDir <log directory>]
    參數描述是否必選參數
    -t <dbName.tableName>待歸檔的表名稱,格式為資料庫名.表名

    資料庫和表名之間以半形句號(.)分隔。表可以是分區表或非分區表。

    -i/-a/-ca目標儲存方式。支援如下方式:
    • -i:低頻 (Infrequent Access,IA)儲存。
    • -a:歸檔(Archive)儲存。
    • -ca:冷歸檔(Cold Archive)儲存。

    如果指定-i則表示低頻儲存,會跳過已經處于歸檔或冷Archive Storage的檔案。如果指定-a則表示Archive Storage,會跳過冷歸檔的檔案。

    -c "<condition>" | -fullTable-fullTable-c "<condition>"只需提供一個,即要麼指定-c "<condition>",要麼指定-fullTable
    • 指定-fullTable時,則為歸檔整表,既可以是非分區表也可以是分區表。
    • 指定-c "<condition>"時,則提供了一個過濾條件,用來選擇希望歸檔的分區,支援常見運算子,例如大於符號(>)。

      例如,資料類型為String的分區ds,希望分區名大於 'd',則代碼為-c " ds > 'd' "

    -b/before <before days>只有建立時間距離現在超過一定天數的表或分區才會被歸檔。
    -p/-parallel <parallelism>歸檔操作的並行度。
    -mr/-mapReduce使用Hadoop MapReduce而非本地多線程來歸檔資料。
    -e/-explain如果出現該選項,則為解釋(explain)模式,只會顯示待移動的分區列表,而不會真正移動資料。
    -w/-workingDir只在MapReduce作業時使用,為MapReduce作業的工作目錄。必須有讀寫權限,工作目錄可以非空(作業執行過程中會建立臨時檔案,執行完畢會清理臨時檔案)。
    -l/-logDir <log directory>指定Log檔案的目錄。

unarchiveTable命令

unarchiveTable命令與archiveTable命令格式基本一致,但效果相反。unarchiveTable命令可以對OSS上的表或分區進行解凍。

  1. 通過SSH方式登入叢集,詳情請參見登入叢集
  2. 執行以下命令,擷取協助資訊。
    jindo table -help unarchiveTable
    unarchiveTable命令語句格式如下所示。
    -archiveTable -t <dbName.tableName> \
    -i/-a/-o/-cr \
    [-notWait] \
    [-c "<condition>" | -fullTable] \
    [-b/-before <before days>] \
    [-p/-parallel <parallelism>] \
    [-mr/-mapReduce] \
    [-e/-explain] \
    [-w/-workingDir <working directory>] \
    [-l/-logDir <log directory>]
unarchiveTable命令與archiveTable命令參數只有以下兩處區別:
  • 沒有必選參數 -i/-a/-ca,而被選擇性參數-i/-a/-o/-cr替代。
  • 多了選擇性參數-notWait
參數描述是否必選參數
-i/-a/-o/-cr轉換儲存類型,均適用於冷歸檔。
  • 如果不指定-i/-a/-o/-cr參數,則轉換儲存格式為標準(Standard)儲存。
    說明 只有當冷歸檔文檔處於完全解凍狀態時,才可以轉換到標準(Standard)、低頻 (Infrequent Access,IA)或歸檔(Archive)儲存類型。
  • 如果指定-i/-a/-o/-cr參數,相關參數描述如下:
    • 指定-i參數,則轉換儲存格式為低頻(Infrequent Access,IA)儲存,跳過原本為標準儲存的檔案。對冷歸檔 (Cold Archive) 有效。
    • 指定-a參數,則轉換儲存格式為歸檔,唯一作用是將冷歸檔 (Cold Archive) 檔案改為歸檔,跳過原本為標準或低頻儲存的檔案。
    • 指定-o參數,則僅做解凍(Restore)操作。跳過原本為標準儲存或低頻儲存的檔案。已經處於解凍狀態的檔案也會被跳過,即不會重複解凍。
    • 指定-cr參數,則用來檢查分區下檔案的解凍任務是否完成。
-notWait只對解凍(Restore)操作有效,如果指定該參數,則只發送解凍命令,而不等待解凍任務完成。通常用於冷歸檔 (Cold Archive) 檔案的解凍。