下載

分布式部署目前只支援Linux,Windows暫不支援。

分布式版本下載地址ossimport-2.3.2.tar.gz,下載到本地後,使用命令 tar -zxvf ossimport-2.3.2.tar.gz -C $HOME/ossimport 解壓,解壓後的檔案結構如下:

ossimport
├── bin
│   ├── console.jar     # Console模組jar包
│   ├── master.jar      # Master模組jar包
│   ├── tracker.jar     # Tracker模組jar包
│   └── worker.jar      # Worker模組jar包
├── conf
│   ├── job.cfg         # Job設定檔範本
│   ├── sys.properties  # 系統運行參數設定檔
│   └── workers         # Worker列表
├── console.sh          # 命令列工具,目前支援只Linux
├── logs                # 日誌目錄
└── README.md           # 說明文檔,使用前請仔細閱讀

注意:

  • OSS_IMPORT_HOME:OssImport的根目錄,預設為解壓命令中的目錄$HOME/ossimport ,也可以通過命令export OSS_IMPORT_HOME=<dir>或修改系統設定檔$HOME/.bashrc 設定,推薦使用預設目錄;
  • OSS_IMPORT_WORK_DIR:OssImport的工作目錄,通過conf/sys.properties的配置項 workingDir指定,推薦為$HOME/ossimport/workdir
  • OSS_IMPORT_HOME或OSS_IMPORT_WORK_DIR請使用絕對路徑配置,如/home/<user>/ossimport/home/<user>/ossimport/workdir

配置

分布式部署有三個設定檔conf/sys.propertiesconf/job.cfgconf/workers

  • conf/job.cfg:分布式模式下任務的設定檔範本,資料移轉前請按照實際參數修改;
  • conf/sys.properties:系統運行參數設定檔,如工作目錄、Worker運行參數等請在該檔案中配置;
  • conf/workers:worker列表。

注意:

  • 請在提交任務前確認sys.propertiesjob.cfg中的參數,任務提交後參數無法再修改;
  • Worker 列表workers請啟動服務前確定,啟動後無法再增加或刪除。

運行

  • 執行遷移任務

    分布式部署時,執行任務的一般步驟是 修改任務設定檔 、 部署服務 、 清除同名任務 、 提交任務 、 啟動遷移服務 、 查看任務狀態 、 重試失敗子任務以及停止遷移任務 。詳細說明如下:

    • 部署服務。執行Linux終端執行bash console.sh deploy。
      说明
      部署前請保證設定檔conf/job.cfg、conf/workers 已經修改完成。
    • 清除同名任務。如果運行過同名任務,需要從新執行任務,請先清除同名任務。如果沒有運行過,或需要重試失敗任務,不需要執行清除命令。Linux終端中執行bash console.sh clean job_name
    • 提交資料移轉任務。OssImport不能重複提交同名任務,如果有請請使用clean命令清除。提交任務需要指定任務的設定檔,任務的設定檔範本在conf/job.cfg,建議在模板的基礎上修改。Linux終端執行bash console.sh submit [job_cfg_file],提交設定檔為 job_cfg_file 的任務,job_cfg_file 為選擇性參數,不指定是預設為$OSS_IMPORT_HOME/conf/job.cfg$OSS_IMPORT_HOME預設為console.sh所在的目錄。
    • 啟動服務。Linux終端執行bash console.sh start
    • 查看任務狀態。Linux終端執行bash console.sh stat
    • 失敗Task重試。由於網路或其它原因,Task可能運行失敗。失敗重試只重試失敗的Task,成功的Task不會重試。Linux下在終端執行bash console.sh retry [job_name], job_name 為選擇性參數,指定時重試任務job_name的失敗子任務,不指定job_name時重試所有任務的失敗子任務。
    • 停止服務。Linux終端執行bash console.sh stop

    提示:

    • bash console.sh在參數錯誤時,會自動提示命令格式;
    • 設定檔和提交任務中的目錄,推薦使用絕對目錄;
    • 任務的配置,即job.cfg中的配置項。
      说明
      配置項提交後不能修改,請在提交前確定。
  • 常見任務失敗原因
    • 上傳過程中來源目錄的檔案發生了修改,log/audit.log裡會提示SIZE_NOT_MATCH相關字樣的錯誤,這種情況下老的檔案已經上傳成功,新的修改沒有上傳到OSS;
    • 源檔案在上傳過程中被刪除,導致下載的時候失敗;
    • 源檔案名不符合OSS命名規範(不能以/開頭,不能為空),導致上傳到OSS失敗;
    • 下載資料來源檔案失敗;
    • 程式異常退出,任務狀態為 Abort ,這種情況請聯繫我們。
  • 任務狀態及日誌

    任務提交後,Master分解成Task,有Worker執行Task,Tracker收集Task狀態。任務運行完成後workdir目錄內容如下:

    workdir
    ├── bin
    │   ├── console.jar     # Console模組jar包
    │   ├── master.jar      # Master模組jar包
    │   ├── tracker.jar     # Tracker模組jar包
    │   └── worker.jar      # Worker模組jar包
    ├── conf
    │   ├── job.cfg         # Job設定檔範本
    │   ├── sys.properties  # 系統運行參數設定檔
    │   └── workers         # Worker列表
    ├── logs
    │   ├── import.log      # 歸檔日誌
    │   ├── master.log      # Master日誌
    │   ├── tracker.log     # Tracker日誌
    │   └── worker.log      # Worker日誌
    ├── master
    │   ├── jobqueue                 # 存放尚未分解完成的任務
    │   └── jobs                     # 存放任務運行狀態
    │       └── xxtooss              # 任務名稱
    │           ├── checkpoints      # Master分解Job到Task的checkpoint點記錄
    │           │   └── 0
    │           │       └── ED09636A6EA24A292460866AFDD7A89A.cpt
    │           ├── dispatched       # 已經分配給Worker尚未運行完成的Task
    │           │   └── 192.168.1.6
    │           ├── failed_tasks     # 運行失敗的Task
    │           │   └── A41506C07BF1DF2A3EDB4CE31756B93F_1499348973217@192.168.1.6
    │           │       ├── audit.log     # Task作業記錄,通過該日誌可以查看錯誤原因
    │           │       ├── DONE          # Task運行成功標誌,失敗為空
    │           │       ├── error.list    # Task錯誤清單,可以查看錯誤檔案清單
    │           │       ├── STATUS        # 任務狀態標誌檔案,內容為Failed或Completed,表示子任務失敗或成功
    │           │       └── TASK          # Task描述資訊
    │           ├── pending_tasks    # 尚未分配的Task
    │           └── succeed_tasks    # 成功啟動並執行Task
    │               └── A41506C07BF1DF2A3EDB4CE31756B93F_1499668462358@192.168.1.6
    │                   ├── audit.log    # Task作業記錄,通過該日誌可以查看錯誤原因
    │                   ├── DONE         # Task運行成功標誌
    │                   ├── error.list   # Task錯誤清單,成功為空
    │                   ├── STATUS       # 任務狀態標誌檔案,內容為Failed或Completed,表示子任務失敗或成功
    │                   └── TASK         # Task描述資訊
    └── worker  # Worker正在啟動並執行Task狀態,運行完成後由Master管理
        └── jobs
            ├── local_test2
            │   └── tasks
            └── local_test_4
                └── tasks

    提示:

    • Job運行狀態查看logs/tracker.log ,Worker的作業記錄查看logs/worker.log,Master的作業記錄查看 logs/master.log
    • Task的失敗原因,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log
    • Task的失敗檔案,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/error.list

常見錯誤及排除

請查看常見錯誤及排除