閱讀106 返回首頁    go 技術社區[雲棲]


OssImport係列之二——單機部署

下載

單機部署支持Linux、Windows。

單機版本下載地址 ossimport-2.2.0.zip ,下載到本地後,使用工具或命令unzip,解壓後的文件結構如下:

ossimport
├── bin
│   └── ossimport2.jar  # 包括Master、Worker、TaskTracker、Console四個模塊的總jar
├── conf
│   ├── local_job.cfg   # Job配置文件
│   └── sys.properties  # 係統運行參數配置文件
├── console.bat         # Windows命令行,可以分布執行調入任務
├── console.sh          # Linux命令行,可以分布執行調入任務
├── import.bat          # Windows一鍵導入,執行配置文件為conf/local_job.cfg配置的數據遷移任務,包括啟動、遷移、校驗、重試
├── import.sh           # Linux一鍵導入,執行配置文件為conf/local_job.cfg配置的數據遷移任務,包括啟動、遷移、校驗、重試
├── logs                # 日誌目錄
└── README.md           # 說明文檔,強烈建議使用前仔細閱讀

配置

單機版本有兩個配置文件conf/sys.propertiesconf/local_job.cfg,配置項的含義請看 介紹 章節。
conf/sys.properties中的配置項 workingDirworkerUserNameworkerPasswordprivateKeyFile請不要修改。conf/local_job.cfg的名稱和位置請不要修改,配置項 jobName請不要修改,其它配置項請按照實際需求配置。

運行

單機模式下,數據遷移任務有兩種執行方式 一鍵導入分步執行。*一鍵導入*,是對所有步驟的封裝,按照腳本提示執行即可完成數據遷移。*分步執行*,執行啟動服務、提交任務、重試失敗子任務等步驟。**對於初級用戶強烈建議使用一鍵導入**。

單機模式的配置文件是conf/local_job.cfg,數據遷移前請安裝實際需求修改任務參數。默認任務名稱為local_test,請不要修改。

一鍵導入

  • 執行一鍵導入,Window在*cmd.exe*中執行 import.bat,Linux終端中執行 bash import.sh
  • 如果之前執行過程序,會提示有是否從上次的斷點處繼續執行,或者重新執行同步任務。對新的數據遷移任務,或者修改了同步的源端/目的端,請選擇重新執行;
  • Windows下任務開始後,會打開一個新的cmd窗口執行同步任務並顯示日誌,舊窗口會每隔10秒打一次任務狀態,數據遷移期間不要關閉兩個窗口;Linux下服務在後台執行;
  • 當*Job*完成後,如果發現有任務失敗了,會提示是否重試,輸入 y 重試,輸入 n 則跳過退出;
  • 上傳失敗的原因請打開文件master/jobs/local_test/failed_tasks/<tasktaskid>/audit.log,請查看,確定失敗原因。

分步執行

  • 清除同名任務。如果以前運行過同名任務,需要從新執行任務,請先清除同名任務。如果沒有運行過,或需要重試失敗任務,不要執行清除命令。Window下在*cmd.exe*中執行 console.bat clean,Linux下在終端執行 bash console.sh clean
  • 提交數據遷移任務。OssImport不能提交同名任務,如果有請先清除。提交任務的配置文件為conf/local_job.cfg,默認任務名稱為local_test。提交任務的命令,Window下在*cmd.exe*中執行 console.bat submit,Linux下在終端執行 bash console.sh submit
  • 啟動服務。Windows下在*cmd.exe*中執行 console.bat start,Linux下在終端執行 bash console.sh start
  • 查看任務狀態。Windows下在*cmd.exe*中執行 console.bat stat,Linux下在終端執行 bash console.sh stat
  • 失敗Task重試。由於網絡或其它原因,子任務可能失敗。失敗重試隻重試失敗的Task,不會重試成功的Task。Windows下在*cmd.exe*中執行 console.bat retry,Linux下在終端執行 bash console.sh retry
  • 停止服務。Windows下在關閉窗口 %JAVA_HOME%/bin/java.exe 即可,Linux下在終端執行 bash console.sh stop

注意

  • 沒有特殊需要,請使用 一鍵導入 方式遷移數據。

常見失敗原因

  • 上傳過程中源目錄的文件發生了修改,log/audit.log裏會提示SIZE_NOT_MATCH相關字樣的錯誤,這種情況下老的文件已經上傳成功,新的修改沒有上傳到OSS;
  • 源文件在上傳過程中被刪除,導致下載的時候失敗;
  • 源文件名不符合OSS命名規範(不能以/開頭,不能為空),導致上傳到OSS失敗;
  • 下載數據源文件失敗;
  • 程序異常退出,任務狀態為*Abort*,這種情況請聯係我們。

任務狀態及日誌

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

ossimport
├── bin
│   └── ossimport2.jar    # 單機版jar
├── conf
│   ├── local_job.cfg     # Job配置文件
│   └── sys.properties    # 係統運行參數配置文件
├── console.sh            # 命令行工具
├── import.sh             # 一鍵導入腳本
├── logs
│   ├── import.log        # 歸檔日誌
│   ├── job_stat.log      # 任務狀態記錄
│   ├── ossimport2.log    # 單機版運行日誌
│   └── submit.log        # 任務提交記錄
├── master
│   ├── jobqueue                # 存放尚未分解完成的任務
│   └── jobs                    # 存放任務運行狀態
│       └── local_test          # 任務名稱
│           ├── checkpoints     # Master分解Job到Task的checkpoint點記錄
│           │   └── 0
│           │       └── 034DC9DD2860B0CFE884242BC6FF92E7.cpt
│           ├── dispatched      # 已經分配給Worker尚未運行完成的Task
│           │   └── localhost
│           ├── failed_tasks    # 運行失敗的Task
│           ├── pending_tasks   # 尚未分配的Task
│           └── succeed_tasks   # 成功運行的Task
│               └── A41506C07BF1DF2A3EDB4CE31756B93F_1499744514501@localhost
│                   ├── audit.log   # Task運行日誌,通過該日誌可以查看錯誤原因
│                   ├── DONE        # Task運行成功標誌
│                   ├── error.list  # Task錯誤列表,可以查看錯誤文件列表
│                   ├── STATUS      # 任務狀態標誌文件,內容為Failed或Completed,表示子任務失敗或成功
│                   └── TASK        # Task描述信息
└── worker      # Worker正在運行的Task狀態,運行完成後有Master管理
    └── jobs
        └── local_test
            └── tasks

提示

  • Job運行信息,可以查看log/ossimport2.log
  • Task的失敗原因,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log
  • Task的失敗文件,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/error.list

常見錯誤及排除

請參看 常見錯誤及排除

最後更新:2017-07-12 11:02:20

  上一篇:go  談談關於PHP的代碼安全相關的一些致命知識
  下一篇:go  OssImport係列之一——架構