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

E-MapReduce:ブロックストレージモードの使用

最終更新日:Jan 11, 2025

このトピックでは、JindoFS のブロックストレージモードとその使用シナリオについて説明します。

概要

ブロックストレージは、データの読み取りと書き込み、およびメタデータのクエリを実行する最も効率的なモードです。さらに、データローカリティに関連する Hadoop Distributed File System(HDFS)セマンティクスをサポートしています。 JindoFS は、E-MapReduce(EMR)クラスターの外部から JindoFS にアクセスできるように、外部クライアントも提供しています。

JindoFS は、ストレージバックエンドとして Object Storage Service(OSS)を使用します。ブロックストレージモードでは、JindoFS はデータをブロックとして OSS に格納し、Namespace Service を使用してメタデータを管理します。これにより、データの読み取りと書き込み、またはメタデータのクエリを実行する際の高いパフォーマンスが保証されます。

シナリオ

EMR には、EMR OssFileSystem、EMR HDFS、EMR JindoFS の 3 つのストレージシステムがあります。これらのうち、OssFileSystem と JindoFS はデータをクラウドに保存します。次の表は、3 つの EMR ストレージシステムの機能と、Alibaba Cloud OSS の Hadoop サポートを比較したものです。

機能 Alibaba Cloud OSS の Hadoop サポート E-MapReduce OssFileSystem E-MapReduce HDFS E-MapReduce JindoFS
ストレージ容量 膨大 膨大 EMR クラスターの規模に依存 膨大
信頼性
スループットに影響を与える要因 サーバー EMR クラスターのディスク上のキャッシュの I/O パフォーマンス EMR クラスターのディスクの I/O パフォーマンス EMR クラスターのディスクの I/O パフォーマンス
メタデータクエリ効率
スケールアウト操作 容易 容易 容易 容易
スケールイン操作 容易 容易 ノードの廃止が必要 容易
データローカリティ なし 弱い 強い

JindoFS のブロックストレージモードには、次の機能があります。

  • JindoFS は、OSS をストレージバックエンドとして使用することにより、膨大でスケーラブルなストレージ容量を提供します。ストレージ容量は、EMR クラスターの規模とは無関係です。ローカルクラスターは、必要に応じてスケールインまたはスケールアウトできます。
  • JindoFS は、読み取り操作を高速化するために、ローカルクラスターにいくつかのバックアップデータを保存します。これにより、限られたローカルストレージ容量を使用することでスループットが向上します。特に Write Once Read Many(WORM)ソリューションに適しています。
  • JindoFS は、HDFS と同様の効率的なメタデータクエリを提供します。 OssFileSystem と比較して、JindoFS はメタデータクエリにかかる時間を大幅に節約します。さらに、JindoFS は、データとメタデータに頻繁にアクセスする場合のシステムの不安定さを回避します。
  • JindoFS は、EMR クラスターでジョブが実行されるときに、最大のデータローカリティを保証します。これにより、ネットワーク転送の負荷が軽減され、読み取りパフォーマンスが向上します。

JindoFS の構成

JindoFS に関連するすべてのパラメーターは、次の図に示すように、Bigboot で設定できます。

図 1. パラメーターの変更 server_config
図 2. パラメーターの追加 cong_sel
説明
  • 前の図で赤枠で囲まれたパラメーターは必須です。
  • JindoFS は複数の名前空間をサポートしています。このトピックでは、test という名前空間を使用します。
パラメーター 説明
jfs.namespaces JindoFS でサポートされている名前空間。複数の名前空間はコンマ(,)で区切ります。 test
jfs.namespaces.test.uri test 名前空間のストレージバックエンド。 oss://oss-bucket/oss-dir
説明 値を OSS バケット内のディレクトリに設定できます。この場合、このディレクトリはルートディレクトリとして機能し、test 名前空間はそこでデータの読み取りと書き込みを行います。
jfs.namespaces.test.mode test 名前空間のストレージモード。 block
jfs.namespaces.test.oss.access.key ストレージバックエンドとして機能する OSS バケットにアクセスするために使用される AccessKey ID。 xxxx
説明 EMR クラスターと同じリージョンおよび同じアカウントにある OSS バケットにデータを保存することをお勧めします。これにより、高パフォーマンスと安定性が確保されます。この場合、OSS バケットは EMR クラスターからのパスワードなしアクセスを許可するため、AccessKey ID と AccessKey シークレットを構成する必要はありません。
jfs.namespaces.test.oss.access.secret ストレージバックエンドとして機能する OSS バケットにアクセスするために使用される AccessKey シークレット。

JindoFS 構成を保存してデプロイします。 JindoFS を使用するには、SmartData で Namespace Service を再起動します。

restart

ストレージポリシーの構成

JindoFS は、さまざまなストレージニーズに対応するために、複数のストレージポリシーを提供しています。次の表に、ディレクトリで使用可能な 4 つのストレージポリシーを示します。

ポリシー 説明
COLD データは OSS にバックアップされますが、ローカルクラスターにはバックアップされません。このポリシーは、コールドデータの保存に適しています。
WARM

デフォルトのストレージポリシー。

データは OSS にバックアップされ、ローカルクラスターにもバックアップされます。ローカルバックアップにより、読み取り操作が高速化されます。

HOT データは OSS にバックアップされ、ローカルクラスターには複数のバックアップが作成されます。ローカルバックアップにより、ホットデータの読み取り操作が高速化されます。
TEMP データはローカルクラスターにバックアップされますが、OSS にはバックアップされません。このポリシーは、一時データの保存に適しています。ローカルバックアップにより、一時データの読み取りおよび書き込み操作が高速化されます。ただし、データの信頼性が低下する可能性があります。

JindoFS は、ディレクトリのストレージポリシーを構成するためのコマンドラインツール Admin を提供します。デフォルトのストレージポリシーは WARM です。新しいファイルは、親ディレクトリに構成されているストレージポリシーに基づいて保存されます。ストレージポリシーを構成するには、次のコマンドを実行します。

jindo dfsadmin -R -setStoragePolicy [path] [policy]

ディレクトリに構成されているストレージポリシーを取得するには、次のコマンドを実行します。

jindo dfsadmin -getStoragePolicy [path]
説明 [path] パラメーターはディレクトリを指定します。 -R オプションは、ディレクトリのすべてのサブディレクトリに同じストレージポリシーを構成するために再帰操作を実行することを指定します。

Admin ツールは、コールドデータをアーカイブするための archive コマンドを提供します。

このコマンドを使用すると、ローカルブロックを明示的にエビクトできます。 Hive がテーブルを日ごとにパーティション分割しているとします。パーティション分割されたテーブルで 1 週間前に生成されたデータにアクセスする頻度が低い場合は、定期的に archive コマンドをそのデータを保存するディレクトリで実行できます。その後、ローカルクラスターに保存されているバックアップはエビクトされますが、OSS のバックアップは保持されます。

次の archive コマンドを実行します。

jindo dfsadmin -archive [path]
説明 [path] パラメーターは、データをアーカイブするディレクトリを指定します。