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