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

Object Storage Service:HDFSからOSS-HDFSへのデータ移行

最終更新日:Feb 22, 2024

Hadoop分散ファイルシステム (HDFS) でデータをバックアップしたり、ストレージスペースをスケールアウトしたりする場合は、Alibaba Cloud E-MapReduce (EMR) クラスターに自動的にデプロイされるJindo DistCpツールを使用して、HDFSからOSS-HDFSにデータを移行できます。 OSS-HDFSはHadoopエコシステムと互換性があります。 HDFSからOSS-HDFSにデータを移行した後、Hadoopエコシステムのさまざまなツールとフレームワークを使用してデータを処理および分析できます。

前提条件

  • Alibaba Cloud EMR-5.6.0以降のバージョンのクラスター、またはEMR-3.40.0以降のバージョンのクラスターが作成されます。 詳細については、「クラスターの作成」をご参照ください。

  • 自己管理型ECS (Elastic Compute Service) クラスターにHadoop 2.7.0以降またはHadoop 3.xの環境が用意されています。 クラスターはMapReduceジョブを実行できる必要があります。 ECSクラスターでの移行を完了する前に、JindoDataを自分でデプロイする必要があります。 JindoDataは、JindoSDKおよびJindoFSxを含む。 最新バージョンをダウンロードすることを推奨します。

  • バケットのOSS-HDFSが有効になり、OSS-HDFSにアクセスする権限が付与されます。 詳細については、「OSS-HDFSの有効化とアクセス許可の付与」をご参照ください。

背景情報

Jindo DistCpを使用して、大規模なクラスター内またはクラスター間でファイルをコピーできます。 Jindo DistCpは、MapReduceを使用してファイルの配布、エラーの処理、データの復元を行います。 ファイルとディレクトリのリストは、MapReduceタスクの入力として使用されます。 各タスクは、入力リスト内の特定のファイルとディレクトリをコピーします。 Jindo DistCpは、HDFS内のディレクトリ間、HDFSとOSS (Object Storage Service) 間、HDFSとOSS-HDFS間、およびOSS-HDFS内のバケット間の完全なデータコピーをサポートします。 Jindo DistCpは、さまざまなカスタムコピーパラメータとコピーポリシーも提供します。

Jindo DistCpは次の利点を提供します:

  • 高い効率。 Jindo DistCpのデータ移行速度は、Hadoop DistCpのデータ移行速度の1.59倍です。

  • 豊富な基本機能。 Jindo DistCpは、複数のコピー方法とさまざまなシナリオベースの最適化ポリシーを提供します。

  • OSSとの深い統合。 Jindo DistCpはOSS機能を利用しているため、データの圧縮やデータストレージクラスのアーカイブへの変換など、データに対してさまざまな操作を実行できます。

  • ファイル名を変更せずにファイルをコピーします。 これによりデータの整合性が保証されます。

  • 高い互換性。 Jindo DistCpはさまざまなシナリオに適用可能で、Hadoop DistCpの代わりに使用できます。 Jindo DistCpはHadoop 2.7.xとHadoop 3.xをサポートしています。

手順

  1. EMRクラスターにログインします。

    1. EMRコンソールにログインします。 左側のナビゲーションウィンドウで、[ECS上のEMR] をクリックします。

    2. 作成したEMRクラスターをクリックします。

    3. [ノード] タブをクリックし、ノードグループの左側にある+.jpgアイコンをクリックします。

    4. ECSインスタンスのIDをクリックします。 [インスタンス] ページで、インスタンスIDの横にある [接続] をクリックします。

      SSHキーペアまたはSSHパスワードを使用してWindowsまたはLinuxでクラスターにログインする方法の詳細については、「クラスターにログインする」をご参照ください。

  2. HDFSの指定されたパスからOSS-HDFSにデータを移行します。

    1. 次のコマンドを実行して、HDFSのデータを表示します。

      hdfs dfs -ls /

      レスポンス例:

      は8アイテムを見つけました
      drwxrwxrwx - admin supergroup 0 2023-10-26 10:55 /.sysinfo
      drwxrwxrwx - hadoop supergroup 0 2023-10-26 10:55 /アプリ
      drwxrwxrwx - root supergroup 0 2022-08-03 15:54 /データ
      -rw-r ----- 1ルートスーパーグループ13 2022-08-25 11:45 /examplefile.txt
      drwxrwxrwx - spark supergroup 0 2023-10-26 14:49 /spark-history
      drwx-wx-wx - hiveスーパーグループ0 2023-10-26 13:35 /tmp
      drwxrwxrwx - hive supergroup 0 2023-10-26 14:48 /ユーザー
      drwxrwxrwx - hadoop supergroup 0 2023-10-26 14:48 /yarn 
    2. jindo-distcp-tool-${version}.jarパッケージがあるディレクトリに切り替えます。

      cd /opt/apps/JINDOSDK/jindosdk-current/tools
    3. EMRクラスターに自動的にデプロイされるjindo-distcp-toolのバージョンを表示します。

      ls
    4. HDFSからOSS-HDFSにデータを移行する。

      完全なデータの移行またはコピー

      HDFSの指定されたディレクトリ (/tmpなど) にあるデータを、宛先OSS-HDFSパス (oss:// examplebucket/dirなど) に移行またはコピーします。 このトピックの例では、jindo-distcp-tool-6.1.0.jarが使用されています。 バージョン番号を実際のバージョン番号に置き換える必要があります。

      hadoop jar jindo-distcp-tool-6.1.0.jar -- src /tmp/ -- dest oss:// examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/ -- hadoopConf fs.oss.accessKeyId=LTAI5t7h6SgiLSganP2m **** -- hadoopConf fs.oss.accessKeySecret=KZo149BD9GLPNiDIEmdQ7dyNKG **** -- 並列処理10

      コマンドのパラメーターとオプションを次の表に示します。

      パラメータ /オプション

      説明

      -- src

      移行またはコピーするHDFS内のデータのソースパス。

      /tmp /

      -dest

      移行またはコピーされたデータが保存されるOSS-HDFSの宛先パス。

      oss:// destbucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/

      -- hadoopConf

      OSS-HDFSへのアクセスに使用されるAccessKeyペア。 AccessKeyペアは、AccessKey IDとAccessKeyシークレットで構成されます。

      • AccessKey ID

        LTAI5t7h6SgiLSganP2m ****
      • AccessKey Secret

        KZo149BD9GLPNiDIEmdQ7dyNKG ****

      -- 並列処理

      クラスター内のリソース数に基づいて同時に実行できるデータ移行スレッドまたはデータコピースレッドの数。

      10

      増分データの移行またはコピー

      完全なデータ移行またはコピー後に、ソースパスから増分データのみを移行またはコピーする場合は、-- updateオプションを使用できます。

      次のサンプルコードは、HDFSのdata /からHDFSのoss:// destbucket/dirに増分データを移行またはコピーする方法を示しOSS-HDFS。

      hadoop jar jindo-distcp-tool-6.1.0.jar -- src /data/ -- dest oss:// destbucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/ -- hadoopConf fs.oss.accessKeyId=LTAI5t7h6SgiLSganP2m **** -- hadoopConf fs.oss.accessKeySecret=KZo149BD9GLPNiDIEmdQ7dyNKG **** -- update -- parallelism 10

参考資料

  • 移行コマンドを実行するたびにエンドポイントとAccessKeyのペアを手動で追加しない場合は、Hadoop設定ファイルcore-site.xmlでエンドポイントとAccessKeyのペアを事前設定できます。 詳細については、「非EMRクラスターのOSS-HDFSへの接続」をご参照ください。

  • Jindo DistCpの他の使用シナリオの詳細については、「Jindo DistCpの使用」をご参照ください。