このトピックでは、LinuxおよびWindowsにスタンドアロンモードでossimportを展開する方法について説明します。
前提条件
Java 1.7またはJava 1.8がインストールされています。
クイックスタート
ダウンロードと解凍 ossimport-2.3.6.zip
解凍されたファイルの構造は次のとおりです。
ossimport â ─ ─ ビン Master、Worker、TaskTracker、およびConsoleモジュールを含むJARパッケージ。 â ─ ─ conf ジョブ設定ファイル。The Job configuration file. システムパラメーターを含む設定ファイル。The configuration file that contains system parameters. タスクを分散して実行するために使用されるWindowsのコマンドラインユーティリティ。 タスクを分散して実行するために使用されるLinuxコマンドラインツール。 ├─ ─ import.bat# Windows上のconf/local_job.cfg設定ファイルに基づいてファイルを自動的にインポートするスクリプト。 設定ファイルには、開始、移行、検証、再試行などのデータ移行操作を指定するパラメーターが含まれています。 ├─ ─ import.sh# Linux上のconf/local_job.cfg設定ファイルに基づいてファイルを自動的にインポートするスクリプト。 設定ファイルには、開始、移行、検証、再試行などのデータ移行操作を指定するパラメーターが含まれています。 ├─ ─ logs# ログを含むディレクトリ。 └ ─ ─ README.md# ossimportの説明を提供するファイル。 ossimportを使用する前に、このファイルを読むことを推奨します。
必要に応じて、conf/sys.propertiesおよびconf/local_job.cfgの設定ファイルを編集します。
次のアイテムは変更しないでください。
conf/sys.propertiesのworkingDir、workerUserName、workerPassword、privateKeyFile。
設定ファイル内の
conf/local_job.cfg
およびjobname
の名前とパス。
設定例の詳細については、「設定ファイルの例」をご参照ください。
重要ジョブを送信する前に、sys.propertiesおよびlocal_job.cfgのパラメーターを確認します。 ジョブのパラメーターは、ジョブの送信後に変更することはできません。
移行ジョブを開始します。
Windowsでimport.batファイルをダブルクリックします。
Linuxでbash import.shを実行します。
ジョブ実行
スタンドアロンモードでデプロイされたossimportでは、データ移行ジョブは次のいずれかの方法で実装されます。
ワンクリックインポート: このメソッドは、すべてのステップをスクリプトにカプセル化します。 スクリプトのプロンプトに従って、データ移行ジョブを実装できます。 初心者の方は、この方法を使用してデータ移行ジョブを実装することを推奨します。 詳細については、「クイックスタート」セクションをご参照ください。
ワンクリックでインポートを開始します。
Windowsでimport.batファイルをダブルクリックします。
Linuxでbash import.shを実行します。
説明最後に実行したジョブが完了していない場合、記録されたチェックポイントからジョブを続行するか、同期ジョブを再起動するかをossimportで確認します。 新しいデータ移行ジョブを開始する場合、またはソースバケットとターゲットバケットを変更した場合は、同期ジョブを再起動します。
Windowsでは、新しいコマンドプロンプトウィンドウが開き、ジョブを実装してログを表示します。 ossimportを実行するコマンドプロンプトウィンドウで、ジョブのステータスが10秒ごとに出力されます。 ジョブ中に [コマンドプロンプト] ウィンドウを閉じないでください。 Linuxでは、ジョブはバックグラウンドで実装されます。
ジョブ中にタスクが失敗した場合は、再試行するかどうかのプロンプトが表示されます。 タスクを再試行するには、yと入力します。 タスクをスキップして終了するには、nと入力します。
データ移行ジョブが失敗した場合は、master/jobs/local_test/failed_tasks/<tasktaskid>/audit.logを表示して、失敗の原因を特定できます。
ステップバイステップのインポート: このメソッドは、次の手順を使用してデータ移行ジョブを実装します。
同じ名前のジョブをクリアします。
同じ名前のジョブを実行し、再度ジョブを実行する場合は、最初に同じ名前のジョブをクリアします。 ジョブを実行していない場合、または失敗したジョブのタスクを再試行する場合は、clearコマンドを実行しないでください。
Windowsの場合、コマンドプロンプトでconsole.bat cleanを実行します。
Linuxの場合、bash console.sh cleanを実行します。
データ移行ジョブの送信
同じ名前のジョブを送信することはできません。 同じ名前のジョブを実行した場合は、最初に同じ名前のジョブをクリアしてください。 送信するジョブの設定ファイルはconf/local_job.cfgです。 送信するジョブのデフォルト名は
local_test
です。 次のコマンドを実行して、ジョブを送信します。Windowsの場合、コマンドプロンプトでconsole.bat submitを実行します。
Linuxの場合、bash console.sh submitを実行します。
サービスを開始します。
Windowsの場合、コマンドプロンプトでconsole.bat startを実行します。
Linuxの場合、bash console.sh startを実行します。
ジョブの状況を表示します。
Windowsの場合、コマンドプロンプトでconsole.bat statを実行します。
Linuxの場合、bash console.sh statを実行します。
失敗したタスクの再試行
ネットワークの問題やその他の要因により、タスクが失敗する場合があります。 再試行コマンドを実行すると、失敗したタスクのみが再試行されます。
Windowsの場合、コマンドプロンプトでconsole.bat retryを実行します。
Linuxの場合、bash console.sh retryを実行します。
サービスを停止します。
Windowsの場合、% JAVA_HOME %/bin/java.exeウィンドウを閉じます。
Linuxの場合、bash console.sh stopを実行します。
ジョブのステータスとログ
ジョブが送信されると、マスターはジョブをタスクに分割し、ワーカーはタスクを実行し、トラッカーはタスクのステータスを収集します。 ジョブが完了すると、ossimportディレクトリの構造は次のようになります。
ossimport
â ─ ─ ビン
スタンドアロンモードでデプロイされたossimportのJARパッケージ。
â ─ ─ conf
ジョブ設定ファイル。The Job configuration file.
システムパラメーターを含む設定ファイル。The configuration file that contains system parameters.
├─ ─ console.sh# コマンドラインツール。
â ─ ─ import.sh# ワンクリックインポート用のスクリプト。
├─ ─ ログ
│ ├─ ─ import.log# 移行ログ。
job_stat.log# ジョブステータスログ。
│ ├─ ─ ossimport2.log# スタンドアロンモードでデプロイされたossimportの実行ログ。
送信されたジョブの記録. log#.
â ─ ─ マスター
│ ├─ ─ jobqueue# 分割されていないジョブ。
ジョブ# ジョブのステータス。
ジョブ名はlocal_test# です。
checkpoints# Masterがジョブをタスクに分割するときに生成されるチェックポイント。
│ │ 様 ─ ─ 0
│ │ ά ─ ─ 034DC9DD2860B0CFE884242BC6FF92E7.cpt
作業者にディスパッチされたが完了していないタスク。
│ │ 様 ─ ─ localhost
│ ├─ ─ failed_tasks# 失敗したタスク。
│ ├─ ─ pending_tasks# ディスパッチされないタスク。
成功したタスク# 正常に実行されるタスク。
│ └ ─ ─ A41506C07BF1DF2A3EDB4CE31756B93F_1499744514501 @ localhost
│ ├─ ─ audit.log# タスクの実行ログ。 ログを表示して、エラーの原因を特定できます。
成功したタスクのマークファイル。The mark file of successful tasks.
│ ├─ ─ error.list# エラーのリスト。 ファイル内のエラーを表示できます。
タスクのステータスを示すマークファイル。The mark file that indicates task STATUS. このファイルの内容はFailedまたはCompletedです。
タスクの説明。
worker# ワーカーによって実行されているタスクのステータスを格納します。 タスクの実行後、タスクはマスターによって管理されます。
└── jobs
└── local_test
└ ─ ─ タスク
ジョブ実行情報を表示するには、logs/ossimport2.logまたはlogs/import.logを参照してください。
タスクの失敗の原因を特定するには、master/jobs/${JobName}/failed_tasks/${TaskName}/audit.logを参照してください。
失敗したタスクのエラーを表示するには、master/jobs/${JobName}/failed_tasks/${TaskName}/error.listを参照してください。
上記のログは参照用です。 サービスとアプリケーションをそれらに基づいてデプロイしないでください。
移行後の整合性検証
ossimportは移行後にデータを検証しないため、データの一貫性と整合性は保証されません。 移行タスクが完了したら、移行元と移行先のデータの整合性を確認します。
ソースと宛先間のデータの整合性を確認せずにソースデータを削除した場合、損失や結果が発生した場合に責任を負います。
移行障害の一般的な原因
アップロード中にソースパスのデータが変更された場合、log/audit.logに
SIZE_NOT_MATCH
エラーが記録されます。 このエラーは、元のデータがアップロードされているが、変更がOSSにアップロードされていないことを示します。アップロード中にソースデータが削除されると、移行ジョブは失敗します。
ソースファイルがOSSオブジェクトの命名規則に準拠していない場合、OSSへの移行は失敗します。 OSSのオブジェクトの名前は、スラッシュ (/) で始めることはできません。
ネットワークの問題が発生した場合、またはアカウントに十分な権限がない場合、ソースデータのダウンロードは失敗します。 実際の原因を特定するには、logs/ossimport2.logまたはlogs/import.logファイルを表示します。
ジョブの実行時にossimportが予期せず終了した場合、ジョブのステータスはAbortです。 予期しない出口が発生した場合は、 チケットを起票し、サポートセンターにお問い合わせください。