JindoFS をキャッシュモードで使用する場合、ファイルはオブジェクトストレージサービス (OSS) にオブジェクトとして保存され、頻繁に使用されるファイルはデータアクセス効率を向上させるために EMR クラスタにキャッシュされます。 キャッシュモードでは、JindoFS はファイル形式を変換することなく OSS 内のファイルにアクセスでき、JindoFS は OSS クライアントと完全に互換性があります。 このトピックでは、JindoFS をキャッシュモードで使用する方法について説明します。
背景情報
キャッシュモードでは、JindoFS は OSS のオブジェクトセマンティクスをサポートし、さまざまな OSS クライアントと完全に互換性があります。 これにより、データの移行やデータ形式の変換を行うことなく、OSS 内のファイルにアクセスできます。 キャッシュモードでは、JindoFS は頻繁に使用されるファイルを EMR クラスタにキャッシュします。 これにより、読み取りと書き込みのパフォーマンスが向上し、帯域幅への負荷が軽減されます。
方法 1: (推奨) OSS スキームの構成
OSS スキームとは、OSS 内のファイルにアクセスする元の方法を指します。 oss://<bucket_name>/<path_of_your_file>
コマンドを使用して、OSS 内のファイルにアクセスできます。 EMR クラスタを作成した後、追加の構成なしでこの方法を使用して OSS 内のファイルにアクセスできます。 また、構成を変更することなく、既存のジョブを実行して OSS からデータを読み込んだり、OSS にデータを書き込んだりすることもできます。
方法 2: JFS スキームの構成
JFS スキームの構成
- SmartData サービスに移動します。
- Alibaba Cloud EMR コンソール にログインします。
- 上部のナビゲーションバーで、クラスタが存在するリージョンを選択します。 必要に応じてリソースグループを選択します。 デフォルトでは、アカウントのすべてのリソースが表示されます。
- [クラスタ管理] タブをクリックします。
- 表示される [クラスタ管理] ページで、ターゲットクラスタを見つけ、[アクション] 列の [詳細] をクリックします。
- 左側のナビゲーションペインで、[クラスタサービス] をクリックし、次に [smartdata] をクリックします。
- Alibaba Cloud EMR コンソール にログインします。
- SmartData サービスの [namespace] タブに移動します。
- [構成] タブをクリックします。
- [サービス構成] セクションの [namespace] タブをクリックします。
- 必要なパラメータを構成します。JindoFS では、複数の名前空間を構成できます。 このトピックでは、test という名前の名前空間を使用します。
- [jfs.namespaces] を [test] に設定します。複数の名前空間を構成する場合は、コンマ (,) で区切ります。
- [カスタム構成] をクリックします。 [構成項目の追加] ダイアログボックスで、次の表に示すパラメータを構成し、[OK] をクリックします。
パラメータ 説明 例 jfs.namespaces.test.oss.uri test 名前空間のストレージバックエンド。 oss://<oss_bucket>/<oss_dir>/ 説明 このパラメータを特定の OSS バケットのディレクトリまたはルートディレクトリに設定します。jfs.namespaces.test.mode test 名前空間のストレージモード。 このパラメータを cache に設定します。 cache
- [jfs.namespaces] を [test] に設定します。
- [OK] をクリックします。
- 構成を保存します。
- [サービス構成] セクションの右上隅にある [保存] をクリックします。
- [変更の確認] ダイアログボックスで、[説明] を指定し、[構成の自動更新] をオンにします。
- [OK] をクリックします。
- 右上隅にある Jindo Namespace Service の再起動[アクション] ドロップダウンリストから を選択します。名前空間サービスが再起動した後、
jfs://test/<path_of_file>
を使用して JindoFS 内のファイルにアクセスできます。
ローカルキャッシュの有効化
ローカルキャッシュを有効にすると、ホットデータブロックがローカルディスクにキャッシュされます。 デフォルトでは、この機能は無効になっており、EMR は OSS から直接データを読み取ります。
- SmartData サービスページの [構成] タブで、[client] タブをクリックします。
- [jfs.cache.data-cache.enable] を [true] に設定して、ローカルキャッシュを有効にします。 SmartData サービスを再起動する必要はありません。
- 構成を保存します。
- [サービス構成] セクションの右上隅にある [保存] をクリックします。
- [変更の確認] ダイアログボックスで、[説明] を指定し、[構成の自動更新] をオンにします。
- [OK] をクリックします。
ローカルキャッシュを有効にすると、Jindo はキャッシュされたデータを自動的に管理します。 指定されたディスク使用量の上限と下限に基づいてキャッシュをクリアします。 制限の構成方法の詳細については、「ディスク容量の使用量の制御」をご参照ください。
ディスク容量の使用量の制御
JindoFS は OSS をデータストレージバックエンドとして使用するため、大量のデータを保存できます。 ただし、ローカルディスクの容量は限られています。 JindoFS はローカルディスクのコールドデータを自動的に削除します。 storage.watermark.high.ratio
パラメータと storage.watermark.low.ratio
パラメータを使用して、ローカルディスクの容量使用率を調整します。 パラメータは、0 から 1 の間の小数に設定できます。
- ディスク使用量の構成を変更します。 SmartData サービスの [サービス構成] セクションで、[storage] タブをクリックし、次の表に示すパラメータを構成します。
パラメータ 説明 storage.watermark.high.ratio ディスク使用量の上限。 JindoFS データのディスク使用量がこの制限を超えると、JindoFS はディスク内のデータを自動的に削除します。 デフォルト値: 0.4。 storage.watermark.low.ratio ディスク使用量の下限。 自動データ削除がトリガーされると、JindoFS データのディスク使用量がこの制限まで減少するまで、JindoFS はデータの削除を開始します。 デフォルト値: 0.2。 説明 上限と下限を構成して、JindoFS に割り当てられたディスク容量を調整できます。 上限が下限よりも大きいことを確認してください。 - 構成を保存します。
- [サービス構成] セクションの右上隅にある [保存] をクリックします。
- [変更の確認] ダイアログボックスで、[説明] を指定し、[構成の自動更新] をオンにします。
- [OK] をクリックします。
- Jindo ストレージサービスを再起動して、構成を適用します。
- 右上隅にある Jindo Storage Service の再起動 ドロップダウンリストから を選択します。
- [クラスタアクティビティ] ダイアログボックスで、関連パラメータを指定します。
- [OK] をクリックします。
- [確認] メッセージで、[OK] をクリックします。
OSS バケットへのアクセス
- OSS スキーム
- SmartData サービスページの [構成] タブで、[smartdata-site] タブをクリックします。
- [smartdata-site] タブで、[カスタム構成] をクリックします。
- [構成項目の追加] ダイアログボックスで、次のパラメータを追加します。
パラメータ 説明 fs.jfs.cache.oss.accessKeyId ストレージバックエンドとして機能する OSS バケットにアクセスするために使用される AccessKey ID。 fs.jfs.cache.oss.accessKeySecret ストレージバックエンドとして機能する OSS バケットにアクセスするために使用される AccessKey シークレット。 fs.jfs.cache.oss.endpoint ストレージバックエンドとして機能する OSS バケットのエンドポイント。 説明 V3.30.0 より前の EMR バージョンでは、構成項目を使用することもできます。 - [OK] をクリックします。
- JFS スキーム
- SmartData サービスページの [構成] タブで、[namespace] タブをクリックします。
- [namespace] タブで、[jfs.namespaces] を [test] に設定します。
この例では、test という名前の名前空間を使用します。
- 右上隅にある [カスタム構成] をクリックします。
- [構成項目の追加] ダイアログボックスで、次のパラメータを追加します。
パラメータ 説明 jfs.namespaces.test.oss.uri test 名前空間のストレージバックエンド。 例: oss://<oss_bucket.endpoint>/<oss_dir>。 OSS バケットのエンドポイントは、このパラメータで指定されます。
jfs.namespaces.test.oss.access.key ストレージバックエンドとして機能する OSS バケットにアクセスするために使用される AccessKey ID。 jfs.namespaces.test.oss.access.secret ストレージバックエンドとして機能する OSS バケットにアクセスするために使用される AccessKey シークレット。 - [OK] をクリックします。
詳細パラメータの構成
いくつかの詳細パラメータを構成して、キャッシュパフォーマンスを最適化できます。 パラメータを構成した後、SmartData サービスを再起動する必要はありません。
- [サービス構成] セクションで、[client] タブをクリックし、次のパラメータを構成します。
パラメータ 説明 client.oss.upload.threads データ書き込みストリームごとの OSS アップロードスレッドの数。 デフォルト値: 4。 client.oss.upload.max.parallelism プロセスの同時 OSS アップロードスレッドの最大数。 このパラメータを使用して、アップロードスレッドが過剰な帯域幅とメモリを占有するのを防ぐことができます。 デフォルト値: 16。 - [サービス構成] セクションで、[smartdata-site] タブをクリックし、次のパラメータを構成します。
パラメータ 説明 fs.jfs.cache.write.buffer.size データ書き込みストリームのバッファサイズ。 単位: バイト。 このパラメータは 2 の累乗に設定する必要があります。 最大値は 8388608 (8 MB) です。 書き込みストリームによって過剰なメモリが占有されている場合は、このパラメータを小さい値に設定することをお勧めします。 デフォルト値: 1048576。 fs.oss.committer.magic.enabled Jindo Job Committer を有効にするかどうかを指定します。 Job Committer は名前変更操作を必要としないため、ジョブのコミットパフォーマンスが向上します。 デフォルト値: true。 説明 キャッシュモードでは、OSS 内のファイルの名前変更のパフォーマンスは標準よりも低くなります。 Jindo Job Committer を使用することをお勧めします。