下載
分布式部署目前只支援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.properties
、conf/job.cfg
、conf/workers
。
conf/job.cfg
:分布式模式下任務的設定檔範本,資料移轉前請按照實際參數修改;conf/sys.properties
:系統運行參數設定檔,如工作目錄、Worker運行參數等請在該檔案中配置;conf/workers
:worker列表。
注意:
- 請在提交任務前確認
sys.properties
和job.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
中的配置項。说明 配置項提交後不能修改,請在提交前確定。
- 部署服務。執行Linux終端執行bash console.sh deploy。
- 常見任務失敗原因
- 上傳過程中來源目錄的檔案發生了修改,
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
。
- Job運行狀態查看
常見錯誤及排除
請查看常見錯誤及排除。