ダウンロード
分散配置は現在、Linux のみをサポートし、Windows はサポートしていません。
分散配置用のツール、ossimport-2.3.3.tar.gz をダウンロードします。
ツールをローカルディレクトリにダウンロードし、コマンド tar -zxvf ossimport-2.3.2.tar.gz -C $HOME/ossimport
を使用してファイルを解凍します。 解凍後のファイル構造は次のとおりです。
ossimport
├── bin
│ ├── console.jar # The JAR package of the console module
│ ├── master.jar # The JAR package of the master module
│ ├── tracker.jar # The JAR package of the tracker module
│ └── worker.jar # The JAR package of the worker module
├── conf
│ ├── job.cfg # The template of the job configuration file
│ ├── sys.properties # Configuration file of the system running parameters
│ └── workers # Worker list
├── console.sh # The command line tool. Currently it only supports Linux
├── logs # Log directory
└── README.md # Description documentation. Read it carefully before use
注記:
- OSS_IMPORT_HOME: OssImport のルートディレクトリです。 既定では、このディレクトリは unzip コマンドの $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
の 3 つの設定ファイルがあります。 設定項目の説明については、「導入部チャプター」をご参照ください。
conf/job.cfg
: 分散モードのジョブの設定ファイルテンプレートです。 データを移行する前に、実際のパラメーターに従って値を変更します。conf/sys.properties
: 作業ディレクトリやワーカーの実行パラメーターなど、システムの実行パラメーターの設定ファイルです。conf/workers
: ワーカーリストです。
注記:
- ジョブの実行を送信する前に、
sys.properties
およびjob.cfg
のパラメーターを確認します。 ジョブ内のパラメーターは、ジョブの投入後に変更することはできません。 - サービスを開始する前に、ワーカーリストの
ワーカー
を決定します。 サービスが開始された後は、ワーカーを追加または削除することはできません。
実行
- コマンドの実行
分散展開におけるジョブ実行の一般的な手順は次のとおりです。
- ジョブ構成ファイルの変更
- サービスの配置
Linux で
bash console.sh deploy
を実行します。注 設定ファイル Conf/job.cfg と CONF/workers が配置する前に修正されていることを確認します。 - 同じ名前のジョブを消去
以前に同じ名前のジョブを実行し、そのジョブを再度実行する場合は、最初に同じ名前のジョブを消去します。 ジョブを一度も実行したことがないか、失敗したジョブを再試行したい場合は、clear コマンドを実行しないでください。 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
を実行します。 - 失敗したタスクの再試行
ネットワークの問題またはその他の原因により、タスクの実行は失敗することがあります。 失敗したタスクのみが再試行されます。Linux で
bash console.sh
を実行し、[job_name] を再試行します。 job_name は、job_name という名前のジョブのタスクを再試行することを指定するオプションのパラメーターです。job_name
パラメーターが指定されていない場合、ジョブが失敗したタスクはすべて再試行されます。 - 移行ジョブの停止
Linuxで
bash console.sh stop
を実行します。注記:
bash console.sh
パラメーターにエラーがあると、console.sh
は自動的にコマンド形式のプロンプトを出します。- 設定ファイルと送信されたジョブのディレクトリには、絶対パスを使用することを推奨します。
- ジョブの設定 (つまり、job.cfg 内の設定項目) は送信後に変更できません。
- ジョブの失敗の一般的な原因
- アップロード処理中に、ソースディレクトリ内のファイルが変更されたとします。 この原因は、
log/audit.log
のSIZE_NOT_MATCH
エラーによって示されます。 この場合、古いファイルは正常にアップロードされていますが、変更は OSS に同期されていません。 - アップロード処理中にソースファイルが削除されると、ダウンロードが失敗します。
- ソースファイル名が OSS の命名規則に準拠していない (ファイル名を "/" または空にすることはできません) ため、OSS へのアップロードが失敗します。
- データソースファイルのダウンロード失敗。
- プログラムは予期せずに終了し、ジョブの状態は "中止" です。 このような場合は、チケットを起票し、サポートセンターへお問い合わせください。
- アップロード処理中に、ソースディレクトリ内のファイルが変更されたとします。 この原因は、
- ジョブの状態とログ
ジョブが送信されると、マスターがそのジョブをタスクに分割し、ワーカーがタスクを実行し、トラッカーがタスクの状態を収集します。 ジョブが完了すると、workdir ディレクトリには次のものが含まれます。
workdir ├── bin │ ├── console.jar # The JAR package of the console module │ ├── master.jar # The JAR package of the master module │ ├── tracker.jar # The JAR package of the tracker module │ └── worker.jar # The JAR package of the worker module ├── conf │ ├── job.cfg # The template of the job configuration file │ ├── sys.properties # Configuration file of the system running parameters │ └── workers # Worker list ├── logs │ ├── import.log # Archive logs │ ├── master.log # Master logs │ ├── tracker.log # Tracker logs │ └── worker.log # Worker logs ├── master │ ├── jobqueue # Store jobs that have not been fully split │ └── jobs # Store the job running state │ └── xxtooss # Job name │ ├── checkpoints # The checkpoint record that the master splits the job to tasks │ │ └── 0 │ │ └── ED09636A6EA24A292460866AFDD7A89A.cpt │ ├── dispatched # Tasks that have been assigned to the workers but haven't been fully run │ │ └── 192.168.1.6 │ ├── failed_tasks # Tasks that failed to run │ │ └── A41506C07BF1DF2A3EDB4CE31756B93F_1499348973217@192.168.1.6 │ │ ├── audit.log # The task running log. You can view the error causes in the log │ │ ├── DONE # Mark of successful tasks. If the task fails, the mark is empty │ │ ├── error.list # The task error list. You can view the error file list │ │ ├── STATUS # The task state mark file. The content is Failed or Completed, indicating that the task failed or succeeded │ │ └── TASK # The task description information │ ├── pending_tasks # Tasks that have not been assigned │ └── succeed_tasks # Tasks that run successfully │ └── A41506C07BF1DF2A3EDB4CE31756B93F_1499668462358@192.168.1.6 │ ├── audit.log # The task running log. You can view the error causes in the log │ ├── DONE # Mark of successful tasks │ ├── error.list # Task error list. If the task is successful, the list is empty │ ├── STATUS # The task state mark file. The content is Failed or Completed, indicating that the task failed or succeeded │ └── TASK # The task description information └── worker # state of the task being run by the worker. After running, tasks are managed by the master └── jobs ├── local_test2 │ └── tasks └── local_test_4 └── tasks
注記:
- ジョブの実行状態については、logs/tracker.log を表示します。 ログを実行しているワーカーの場合は、
logs/worker.log
を表示します。 実行中のマスターログについては、logs/master.log をご参照ください。 - タスク失敗の原因については、master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log をご参照ください。
- 失敗したタスクファイルについては、master/jobs/${JobName}/failed_tasks/${TaskName}/error.list を表示してください。
- ジョブの実行状態については、logs/tracker.log を表示します。 ログを実行しているワーカーの場合は、
よくある質問
「よくある質問」をご参照ください。