すべてのプロダクト
Search
ドキュメントセンター

:分散配置

最終更新日:Feb 23, 2024

このトピックでは、分散モードでossimportを展開する方法について説明します。 ossimportの分散デプロイはLinuxでのみサポートされています。

前提条件

  • 少なくとも2つのマシンのクラスタが配備され、1つはマスタであり、他はワーカーである。

  • マスターとワーカーの間でSSHによる接続が確立されます。

  • すべての作業者は同じユーザー名とパスワードを使用します。

    説明

    マスターとワーカーの間にSSH接続が確立されるか、ワーカーのログイン資格情報がsys.propertiesで構成されます。

ossimportのダウンロードとインストール

  1. ダウンロードossimport.

    ダウンロード . gzをローカルコンピューターにossimport-2.3.6.tarします。

  2. ossimportをインストールします。

    説明

    以降の操作はすべてマスターで実行されます。

    1. サーバーにログインし、次のコマンドを実行してossimportディレクトリを作成します。

      mkdir -p $HOME/ossimport
    2. パッケージのディレクトリに移動し、次のコマンドを実行して、パッケージを指定されたディレクトリに解凍します。

      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.propertiesworkingDirを設定することで、作業ディレクトリを指定できます。 作業ディレクトリとして $HOME/ossimport/workdirを使用することを推奨します。

      • OSS_IMPORT_HOMEまたはOSS_IMPORT_WORK_DIRの絶対パスを指定します (例: /home/<user>/ossimportまたは /home/<user>/ossimport/workdir) 。

設定

ossimportの分散配置には、conf/sys.propertiesconf/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_HOMEconsole.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」をご参照ください。