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

E-MapReduce:JindoFS のキャッシュモードの使用

最終更新日:Jan 11, 2025

JindoFS をキャッシュモードで使用すると、ファイルはオブジェクトストレージサービス(OSS)にオブジェクトとして保存され、頻繁に使用されるファイルは EMR クラスタにキャッシュされてデータアクセス効率が向上します。キャッシュモードでは、JindoFS はファイル形式を変換せずに OSS のファイルにアクセスでき、OSS クライアントと完全に互換性があります。このトピックでは、JindoFS をキャッシュモードで使用する方法について説明します。

背景情報

キャッシュモードでは、JindoFS は OSS のオブジェクトセマンティクスをサポートし、さまざまな OSS クライアントと完全に互換性があります。これにより、データの移行やデータ形式の変換を行うことなく、OSS のファイルにアクセスできます。キャッシュモードでは、JindoFS は頻繁に使用されるファイルを EMR クラスタにキャッシュします。これにより、読み取りと書き込みのパフォーマンスが向上し、帯域幅への負荷が軽減されます。

OSS のファイルにアクセスする方法

キャッシュモードでは、ビジネス要件に基づいて、次のいずれかの方法を使用して OSS のファイルにアクセスできます。

(推奨)OSS スキームの設定

OSS スキームとは、OSS のファイルにアクセスする元の方法です。oss://<bucket_name>/<path_of_your_file> コマンドを使用して、OSS のファイルにアクセスできます。EMR クラスタを作成した後、追加の設定なしでこの方法を使用して OSS のファイルにアクセスできます。また、設定を変更することなく、既存のジョブを実行して OSS からデータを読み取ったり、OSS にデータを書き込んだりすることもできます。

JFS スキームの設定

  1. SmartData サービスに移動します。
    1. Alibaba Cloud EMR コンソール にログインします。
    2. 上部のナビゲーションバーで、クラスタが存在するリージョンを選択します。必要に応じてリソースグループを選択します。デフォルトでは、アカウントのすべてのリソースが表示されます。
    3. [クラスタ管理] タブをクリックします。
    4. 表示される [クラスタ管理] ページで、ターゲットクラスタを見つけ、[アクション] 列の [詳細] をクリックします。
    5. 左側のナビゲーションペインで、[クラスタサービス] をクリックし、次に [smartdata] をクリックします。
  2. SmartData サービスの [namespace] タブに移動します。
    1. [設定] タブをクリックします。
    2. [サービス設定] セクションの [namespace] タブをクリックします。
      namespace
  3. 必要なパラメータを設定します。
    JindoFS では、複数の namespace を設定できます。このトピックでは、test という名前の namespace を使用します。
    1. [jfs.namespaces][test] に設定します。
      複数の namespace を設定する場合は、カンマ(,)で区切ります。
    2. [カスタム設定] をクリックします。[設定項目の追加] ダイアログボックスで、次の表に示すパラメータを設定し、[OK] をクリックします。
      パラメータ説明
      jfs.namespaces.test.oss.uritest namespace のストレージバックエンド。oss://<oss_bucket>/<oss_dir>/
      説明 このパラメータを特定の OSS バケットのディレクトリまたはルートディレクトリに設定します。
      jfs.namespaces.test.modetest namespace のストレージモード。このパラメータを cache に設定します。cache
  4. [サービス設定] セクションの右上隅にある [保存] をクリックします。
  5. 右上隅にある Jindo Namespace Serviceの再起動[アクション] ドロップダウンリストから を選択します。
    Namespace サービスが再起動した後、jfs://test/<path_of_file> を使用して JindoFS のファイルにアクセスできます。

ローカルキャッシュの有効化

ローカルキャッシュを有効にすると、ホットデータブロックがローカルディスクにキャッシュされます。デフォルトでは、この機能は無効になっており、EMR は OSS から直接データを読み取ります。

  1. 左側のナビゲーションペインで、[クラスタサービス] をクリックし、次に [smartdata] をクリックします。[SMARTDATA] ページで、[設定] タブをクリックします。[サービス設定] セクションで、[client] タブをクリックします。
  2. [jfs.cache.data-cache.enable][1] に設定して、ローカルキャッシュを有効にします。
    設定は、SmartData サービスを再起動する必要なく、クライアントにすぐに反映されます。

ローカルキャッシュを有効にすると、Jindo はキャッシュされたデータを自動的に管理します。設定した高水位標と低水位標に基づいてキャッシュをクリアします。ウォータマークの設定方法の詳細については、「ディスク容量の使用量の制御」をご参照ください。

ディスク容量の使用量の制御

JindoFS は OSS をデータストレージバックエンドとして使用するため、大量のデータを保存できます。ただし、ローカルディスクの容量は限られています。JindoFS はローカルディスクのコールドデータを自動的に削除します。storage.watermark.high.ratio パラメータと storage.watermark.low.ratio パラメータは、ローカルディスクの容量使用率を調整するために使用されます。パラメータは 0 から 1 までの小数に設定できます。

  1. ディスク使用量の設定を変更します。
    SmartData サービスの [サービス設定] セクションで、[storage] タブをクリックし、次の表に示すパラメータを設定します。storage
    パラメータ説明
    storage.watermark.high.ratioディスク使用率の上限。JindoFS データのディスク使用率がこの制限を超えると、JindoFS はディスク内のデータを自動的に削除します。デフォルト値:0.4。
    storage.watermark.low.ratioディスク使用率の下限。自動データ削除がトリガーされると、JindoFS データのディスク使用率がこの制限まで減少するまで、JindoFS はデータの削除を開始します。デフォルト値:0.2。
    説明 上限と下限を設定して、JindoFS に割り当てられるディスク容量を調整できます。上限が下限よりも大きいことを確認してください。
  2. 設定を保存します。
    1. [サービス設定] セクションの右上隅にある [保存] をクリックします。
    2. [変更の確認] ダイアログボックスで、[説明] を指定し、[設定の自動更新] をオンにします。
    3. [OK] をクリックします。
  3. Jindo Storage サービスを再起動して、設定を適用します。
    1. 右上隅にある Jindo Storage Service の再起動[アクション] ドロップダウンリストから を選択します。
    2. [クラスタアクティビティ] ダイアログボックスで、関連パラメータを指定します。
    3. [OK] をクリックします。
    4. [確認] メッセージで、[OK] をクリックします。

OSS バケットへのアクセス

EMR クラスタと同じ Alibaba Cloud アカウントの同じリージョンにある OSS バケットにアクセスする場合、AccessKey ペアを設定する必要はありません。それ以外の場合は、AccessKey ペアと OSS バケットエンドポイントを設定する必要があります。OSS のファイルにアクセスするために使用するメソッドに基づいてパラメータを設定します。

  • OSS スキーム
    1. 左側のナビゲーションペインで、[クラスタサービス] をクリックし、次に [smartdata] をクリックします。[SMARTDATA] ページで、[設定] タブをクリックします。[サービス設定] セクションで、[smartdata-site] タブをクリックします。
    2. [カスタム設定] をクリックします。[設定項目の追加] ダイアログボックスで、次の表に示すパラメータを設定し、[OK] をクリックします。
      パラメータ説明
      fs.jfs.cache.oss-accessKeyIdストレージバックエンドとして機能する OSS バケットの AccessKey ID。
      fs.jfs.cache.oss-accessKeySecretストレージバックエンドとして機能する OSS バケットの AccessKey シークレット。
      fs.jfs.cache.oss-endpointストレージバックエンドとして機能する OSS バケットのエンドポイント。
  • JFS スキーム
    1. 左側のナビゲーションペインで、[クラスタサービス] > [smartdata] を選択します。[SMARTDATA] ページで、[設定] タブをクリックします。[サービス設定] セクションで、[namespace] タブをクリックします。
    2. [jfs.namespaces][test] に設定します。
    3. [カスタム設定] をクリックします。[設定項目の追加] ダイアログボックスで、次の表に示すパラメータを設定し、[OK] をクリックします。
      パラメータ説明
      jfs.namespaces.test.oss.uritest namespace のストレージバックエンド。例:oss://<oss_bucket.endpoint>/<oss_dir>

      OSS バケットエンドポイントは、このパラメータで指定されます。

      jfs.namespaces.test.oss.access.keyストレージバックエンドとして機能する OSS バケットの AccessKey ID。
      jfs.namespaces.test.oss.access.secretストレージバックエンドとして機能する OSS バケットの AccessKey シークレット。

詳細設定

いくつかの詳細パラメータを設定して、キャッシュパフォーマンスを最適化できます。パラメータを設定した後、SmartData サービスを再起動する必要はありません。設定はクライアントにすぐに反映されます。

  • [サービス設定] セクションで、[client] タブをクリックし、次の表に示すパラメータを設定します。
    パラメータ説明
    client.oss.upload.threadsデータ書き込みストリームごとの OSS アップロードスレッド数。デフォルト値:4。
    client.oss.upload.max.parallelismプロセスの同時 OSS アップロードスレッドの最大数。このパラメータは、アップロードスレッドが過剰な帯域幅とメモリを占有するのを防ぎます。デフォルト値:16。
  • [サービス設定] セクションで、[smartdata-site] タブをクリックし、次の表に示すパラメータを設定します。
    パラメータ説明
    fs.jfs.cache.copy.simple.max.byte共通のコピーインターフェースで名前が変更されるファイルのサイズのしきい値。ファイルのサイズがこのしきい値よりも小さい場合は、共通のコピーインターフェースが使用されます。サイズがこのしきい値よりも大きい場合は、コピー効率を向上させるためにマルチパートコピーインターフェースが使用されます。
    説明 OSS の高速コピー機能を有効にしている場合は、このパラメータを [-1] に設定します。この値は、すべてのファイルの名前が共通のコピーインターフェースで変更されることを示します。このようにして、最適な名前変更パフォーマンスを得ることができます。
    fs.jfs.cache.write.buffer.sizeデータ書き込みストリームのバッファサイズ。単位:バイト。このパラメータは 2 の累乗に設定する必要があります。最大値は 8388608(8 MB)です。書き込みストリームによってメモリが過剰に占有されている場合は、このパラメータを小さい値に設定することをお勧めします。デフォルト値:1048576。
    fs.oss.committer.magic.enabledJindo Job Committer を有効にするかどうかを指定します。この Job Committer は名前変更操作を必要とせず、ジョブのコミットパフォーマンスを向上させます。デフォルト値:true。
    説明 キャッシュモードでは、OSS でのファイルの名前変更のパフォーマンスは標準よりも低くなります。Jindo Job Committer を使用することをお勧めします。