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

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

最終更新日:Mar 27, 2026

JindoFS のキャッシュモードは、データを Object Storage Service (OSS) にオブジェクトとして保存し、頻繁にアクセスされるファイルをローカルの E-MapReduce (EMR) クラスターのディスクにキャッシュします。これにより、データの移行やファイル形式の変換を行うことなく、ローカルディスクの速度で OSS データの読み書きが可能になります。

キャッシュモードの仕組み

キャッシュモードは、3 段階のライフサイクルに従います:

  1. ロード:JindoFS は、OSS から頻繁にアクセスされるファイルを読み取り、ローカルディスクにキャッシュします。

  2. 管理:JindoFS は、キャッシュされたファイルのうちどれがホットデータであるかを自動的に追跡します。ローカルディスクの領域は、設定可能な上限および下限のウォーターマークによって制御されます。

  3. エビクション:ディスク使用率が上限ウォーターマークを超えると、JindoFS は使用率が下限ウォーターマークに達するまでコールドデータを削除 (エビクション) します。

デフォルトでは、ローカルキャッシュは無効になっており、すべての読み取りは直接 OSS に送られます。読み取り負荷の高いワークロードでより低いレイテンシーが必要な場合に有効にしてください。

アクセススキームの選択

キャッシュモードは、OSS にアクセスするための 2 つの方法をサポートしています:

OSS スキームJFS スキーム
URI フォーマットoss://<bucket>/<path>jfs://<namespace>/<path>
必要な設定なし — クラスター作成後すぐに機能しますSmartData での名前空間の設定が必要です
OSS クライアントの互換性完全 — 既存のジョブは変更なしで実行されますURI の更新が必要です
使用するケースほとんどのワークロードにおけるデフォルトの選択肢です名前空間レベルのアクセス制御や複数のストレージバックエンドが必要な場合

JFS スキームを使用する特別な理由がない限り、OSS スキームを使用してください。

OSS スキームでの OSS へのアクセス

追加の設定は不要です。EMR クラスターを作成した後、直接 OSS にアクセスします:

oss://<bucket_name>/<path_of_your_file>

この URI フォーマットをすでに使用している既存のジョブは、変更なしで引き続き機能します。

JFS スキームの設定

前提条件

開始する前に、以下を確認してください:

名前空間の設定

  1. Alibaba Cloud E-MapReduce コンソールにログインします。

  2. 上部のナビゲーションバーで、クラスターが存在するリージョンを選択します。必要に応じてリソースグループを選択します。

  3. [クラスター管理] タブをクリックします。対象のクラスターを見つけ、[アクション] 列の [詳細] をクリックします。

  4. 左側のナビゲーションウィンドウで、[クラスターサービス] > [SmartData] をクリックします。

  5. [設定] タブをクリックします。[サービス設定] セクションで、[bigboot] タブをクリックします。

    bigboot

  6. jfs.namespacestest に設定します。

    JindoFS は複数の名前空間をサポートしています。複数の名前空間名はカンマで区切ります。このトピックでは、test という名前の名前空間を使用します。
  7. [カスタム設定] をクリックします。[設定項目の追加] ダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。

    パラメーター説明
    jfs.namespaces.test.oss.uritest 名前空間の OSS ストレージバックエンド。これを特定のディレクトリまたは OSS バケットのルートディレクトリに設定します。oss://<oss_bucket>/<oss_dir>/
    jfs.namespaces.test.modeストレージモード。キャッシュモードの場合は cache に設定します。cache
  8. [サービス設定] セクションの右上隅にある [保存] をクリックします。

  9. 右上隅の [アクション] ドロップダウンリストから、[Jindo Namespace Service の再起動] を選択します。

サービスが再起動したら、JFS スキームを使用してファイルにアクセスします:

jfs://test/<path_to_your_file>

JindoFS は jfs.namespaces.test.oss.uri に基づいて JFS パスを OSS パスにマッピングします。たとえば、jfs://test/hello.txtoss://<oss_bucket>/<oss_dir>/hello.txt にマッピングされます。

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

デフォルトでは、EMR は OSS から直接データを読み取ります。ローカルキャッシュを有効にすると、ホットデータブロックがローカルディスクに保存され、繰り返し読み取りが高速化されます。

  1. 左側のナビゲーションウィンドウで、[クラスターサービス] > [SmartData] をクリックします。[SMARTDATA] ページで、[設定] タブをクリックします。[サービス設定] セクションで、[client] タブをクリックします。

  2. jfs.cache.data-cache.enable1 に設定します。

この変更はクライアント側で即座に有効になります。SmartData サービスを再起動する必要はありません。

ローカルキャッシュを有効にすると、JindoFS は「ディスク領域使用量の制御」で説明されている上限および下限のウォーターマークを使用して、キャッシュデータを自動的に管理します。

ディスク領域使用量の制御

JindoFS は、ローカルディスクの使用率が高い場合にコールドデータを自動的にエビクションします。2 つのパラメーターがエビクションのしきい値を制御します:

パラメーター説明デフォルト
storage.watermark.high.ratioJindoFS データのディスク使用率の上限。使用率がこの比率を超えると、JindoFS はデータのエビクションを開始します。0.4
storage.watermark.low.ratio下限。JindoFS は、ディスク使用率がこの比率に低下するまでデータのエビクションを続けます。0.2

両方のパラメーターは 0 から 1 までの 10 進数を受け入れます。上限の比率は下限の比率よりも大きい必要があります。

ウォーターマーク設定を更新するには:

  1. SmartData の [サービス設定] セクションで、[storage] タブをクリックします。

    storage

  2. 必要に応じて storage.watermark.high.ratiostorage.watermark.low.ratio を更新します。

  3. [サービス設定] セクションの右上隅にある [保存] をクリックします。[変更の確認] ダイアログボックスで、説明を入力し、[設定の自動更新] をオンにして、[OK] をクリックします。

  4. 右上隅の [アクション] ドロップダウンリストから、[Jindo Storage Service の再起動] を選択します。[クラスターアクティビティ] ダイアログボックスで、必要なパラメーターを指定して [OK] をクリックします。確認メッセージで [OK] をクリックします。

アカウント間またはリージョン間の OSS バケットへのアクセス

ご利用の EMR クラスターと OSS バケットが同じ Alibaba Cloud アカウントと同じリージョンにある場合、AccessKey の設定は不要です。

それ以外の場合 (異なるアカウントまたは異なるリージョン) は、AccessKey ペアとエンドポイントを明示的に設定してください。

OSS スキーム

  1. 左側のナビゲーションウィンドウで、[クラスターサービス] > [SmartData] をクリックします。[SMARTDATA] ページで、[設定] タブをクリックします。[サービス設定] セクションで、[smartdata-site] タブをクリックします。

  2. [カスタム設定] をクリックします。[設定項目の追加] ダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。

    パラメーター説明
    fs.jfs.cache.oss-accessKeyIdOSS バケットの AccessKey ID。
    fs.jfs.cache.oss-accessKeySecretOSS バケットの AccessKey Secret。
    fs.jfs.cache.oss-endpointOSS バケットのエンドポイント。

JFS スキーム

  1. 左側のナビゲーションウィンドウで、[クラスターサービス] > [SmartData] をクリックします。[SMARTDATA] ページで、[設定] タブをクリックします。[サービス設定] セクションで、[bigboot] タブをクリックします。

  2. jfs.namespacestest に設定します。

  3. [カスタム設定] をクリックします。[設定項目の追加] ダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。

    パラメーター説明
    jfs.namespaces.test.oss.uriOSS ストレージバックエンドの URI。URI にエンドポイントを含めます。例:oss://<oss_bucket.endpoint>/<oss_dir>
    jfs.namespaces.test.oss.access.keyOSS バケットの AccessKey ID。
    jfs.namespaces.test.oss.access.secretOSS バケットの AccessKey Secret。

詳細設定

以下のパラメーターは、キャッシュのパフォーマンスを調整します。変更はクライアント側で即座に有効になり、サービスの再起動は不要です。

クライアント タブ[サービス設定] セクション内):

パラメーター説明デフォルト
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 を有効にします。これにより、名前の変更操作なしでジョブをコミットし、コミットパフォーマンスを向上させます。キャッシュモードでは、OSS の名前変更パフォーマンスが標準より低いため、Jindo Job Committer が推奨されるコミッターです。true

次のステップ