このトピックでは、分散モードでossimportを展開する方法について説明します。 ossimportの分散デプロイはLinuxでのみサポートされています。
前提条件
少なくとも2つのマシンのクラスタが配備され、1つはマスタであり、他はワーカーである。
マスターとワーカーの間でSSHによる接続が確立されます。
すべての作業者は同じユーザー名とパスワードを使用します。
説明マスターとワーカーの間にSSH接続が確立されるか、ワーカーのログイン資格情報がsys.propertiesで構成されます。
ossimportのダウンロードとインストール
ダウンロードossimport.
ダウンロード . gzをローカルコンピューターにossimport-2.3.6.tarします。
ossimportをインストールします。
説明以降の操作はすべてマスターで実行されます。
サーバーにログインし、次のコマンドを実行してossimportディレクトリを作成します。
mkdir -p $HOME/ossimport
パッケージのディレクトリに移動し、次のコマンドを実行して、パッケージを指定されたディレクトリに解凍します。
tar -zxvf ossimport-2.3.6.tar.gz -C $HOME/ossimport
解凍されたファイルの構造は次のとおりです。
ossimport â ─ ─ ビン コンソールモジュールのjarパッケージです。The JAR package for the console module. │ ├─ ─ master.jar# MasterモジュールのJARパッケージです。 tracker.jar# TrackerモジュールのJARパッケージです。 workerモジュールのjarパッケージ。The JAR package for the Worker module. â ─ ─ conf ジョブ設定ファイルテンプレート。The job configuration file template. システムパラメーターを含む設定ファイル。The configuration file that contains system parameters. 労働者# 労働者のリスト。 ├─ ─ console.sh# コマンドラインツール。 Linuxのみがサポートされています。 ├─ ─ logs# ログを含むディレクトリ。 └ ─ ─ README.md# ossimportを紹介し説明するファイル。 ossimportを使用する前に、このファイルを読むことを推奨します。
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
) 。
設定
ossimportの分散配置には、conf/sys.properties
、conf/job.cfg
、およびconf/workers
の3つの構成ファイルがあります。
conf/job.cfg
: 分散モードでジョブを設定するために使用される設定ファイルテンプレート。 実際の移行ジョブに基づいてパラメーターを設定します。conf/sys.properties
: 作業ディレクトリやワーカー関連のパラメーターなど、システムの動作パラメーターを含む構成ファイル。conf/workers
: ワーカーリスト。
移行ジョブを開始する前に、
sys.properties
およびjob.cfg
のパラメーターを確認してください。 移行ジョブの送信後、ファイルのパラメーター設定を変更することはできません。サービスを開始する前に、
ワーカー
を設定して確認します。 サービスの開始後は、ファイルに項目を追加したり、ファイルから項目を削除したりすることはできません。
移行
移行ジョブ
分散モードでossimportを使用して移行ジョブを実行する場合、ほとんどの場合、次の手順を実行する必要があります。
サービスの配置 これを行うには、Linuxターミナルでbash console.sh deployコマンドを実行します。 このコマンドは、conf/workers構成ファイルで指定されたすべてのマシンにossimportをデプロイします。
説明サービスをデプロイする前に、構成ファイルconf/job.cfgとconf/workersが適切に構成されていることを確認してください。
同じ名前のジョブをクリアします。 同じ名前のジョブを実行し、再度ジョブを実行する場合は、最初に同じ名前のジョブをクリアします。 ジョブを実行していない場合、または失敗したジョブのタスクを再試行する場合は、cleanコマンドを実行しないでください。 同じ名前のジョブをクリアするには、Linuxターミナルで
bash console.sh clean job_name
を実行します。データ移行ジョブの送信 同じ名前のジョブを送信することはできません。 同じ名前のジョブがある場合は、cleanコマンドを実行してジョブをクリアします。 ジョブを送信するには、構成ファイルが必要です。
conf/job.cfg
テンプレートファイルに基づいてジョブ設定ファイルを作成できます。 ジョブを送信するには、Linuxターミナルでbash console.sh submit [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 retry [job_name]
を実行します。 コマンドでは、オプションのjob_name
パラメーターは、失敗したタスクを再試行するジョブを指定します。 このパラメーターを設定しない場合、すべてのジョブの失敗したタスクが再試行されます。サービスを停止します。 これを行うには、Linuxターミナルで
bash console.sh stop
を実行します。
注:
bash console.sh
コマンドのパラメーターが正しくないためにエラーが発生した場合は、正しいコマンド形式が表示されます。設定ファイルと送信ジョブで絶対パスを指定することを推奨します。
job.cfg
ファイルには、ジョブ設定項目が含まれています。重要ジョブの送信後にファイル内の設定項目を変更することはできません。
ジョブの失敗の一般的な原因
ソースディレクトリ内のファイルは、アップロードプロセス中に変更されます。 この場合、
SIZE_NOT_MATCH
エラーがlog/audit.log
に記録されます。これは、元のファイルがアップロードされ、変更がOSSにアップロードされないことを意味します。アップロード中にソースファイルが削除されます。 これにより、ダウンロードの失敗が発生します。
アップロードするファイルの名前がOSSの命名規則に準拠していません。 たとえば、アップロードするファイルの名前がスラッシュ (/) で始まる場合、または空のままである場合、アップロードは失敗します。
ソースファイルのダウンロードに失敗しました。
プログラムは予期せずに終了し、ジョブの状態は "中止" です。 この場合は、テクニカルサポートチームにお問い合わせください。
ジョブのステータスとログ
ジョブが送信されると、マスターはジョブをタスクに分割し、ワーカーはタスクを実行し、トラッカーはタスクのステータスを収集します。 ジョブが完了すると、workdirディレクトリの構造は次のようになります。
workdir â ─ ─ ビン コンソールモジュールのjarパッケージです。The JAR package for the console module. │ ├─ ─ master.jar# MasterモジュールのJARパッケージです。 tracker.jar# TrackerモジュールのJARパッケージです。 workerモジュールのjarパッケージ。The JAR package for the Worker module. â ─ ─ conf ジョブ設定ファイルテンプレート。The job configuration file template. システムパラメーターを含む設定ファイル。The configuration file that contains system parameters. 労働者# 労働者のリスト。 ├─ ─ ログ │ ├─ ─ import.log# 移行ログ。 │ ├─ ─ master.log# マスターログ。 │ ├─ ─ tracker.log # Tracker logs。 Worker# Workerログ。 â ─ ─ マスター │ ├─ ─ jobqueue# 分割されていないジョブ。 ジョブ# ジョブのステータス。 │ õ ─ ─ xxtooss# ジョブ名。 checkpoints# マスターがジョブをタスクに分割するときに生成されるチェックポイント。 │ │ 様 ─ ─ 0 │ │ ά ─ ─ ED09636A6EA24A292460866AFDD7A89A.cpt │ ├─ ─ 発送された# ワーカーに発送されたが完了していないタスク。 │ │ ά ─ ─ 192.168.1.6 │ ├─ ─ failed_tasks# 失敗したタスク。 A41506C07BF1DF2A3EDB4CE31756B93F_1499348973217@192.168.1.6 ─ ─ ─ │ │ ├─ ─ audit.log# タスクのログ。 ログを表示して、エラーの原因を特定できます。 成功したタスクのマークファイル。The mark file of successful tasks. タスクが失敗した場合、コンテンツは空です。 │ │ ├─ ─ error.list# タスクエラーの一覧。 ファイル内のエラーを表示できます。 タスクのステータスを示すマークファイル。The mark file that indicates task STATUS. このファイルの内容はFailedまたはCompletedで、タスクが失敗または成功したことを示しています。 タスクの説明。 │ ├─ ─ pending_tasks# ディスパッチされないタスク。 成功したタスク# 正常に実行されるタスク。 A41506C07BF1DF2A3EDB4CE31756B93F_1499668462358@192.168.1.6 ─ ─ ─ │ ├─ ─ audit.log# タスクのログ。 ログを表示して、エラーの原因を特定できます。 成功したタスクのマークファイル。The mark file of successful tasks. │ ├─ ─ error.list# タスクエラーのリスト。 タスクが成功した場合、エラーリストは空です。 タスクのステータスを示すマークファイル。The mark file that indicates task STATUS. このファイルの内容はFailedまたはCompletedで、タスクが失敗または成功したことを示しています。 タスクの説明。 worker# ワーカーによって実行されているタスクのステータスを格納します。 タスクの実行後、タスクはマスターによって管理されます。 └── jobs ├── local_test2 │ └── tasks └── local_test_4 └ ─ ─ タスク
重要ジョブの実行に関する情報を表示するには、
logs/import.log
を確認してください。失敗したタスクをトラブルシューティングするには、
master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log
をチェックします。エラーを表示するには、
master/jobs/${JobName}/failed_tasks/${TaskName}/error.list
をチェックしてください。上記のログは参照用です。 それらに基づいてサービスとアプリケーションをデプロイしないでください。
移行後の整合性検証
ossimportは移行後にデータを検証しないため、データの一貫性と整合性は保証されません。 移行タスクが完了したら、移行元と移行先のデータの整合性を確認します。
ソースと宛先間のデータの整合性を確認せずにソースデータを削除した場合、損失や結果が発生した場合に責任を負います。
一般的なエラーとトラブルシューティング
一般的なエラーとトラブルシューティングの詳細については、「FAQ」をご参照ください。