JindoFS キャッシュモードは、ファイルを Object Storage Service (OSS) 上のオブジェクトとして保存し、ご利用の E-MapReduce クラスター内でアクセスパターンに基づいてローカルにキャッシュします。これにより、データアクセス効率が向上するとともに、OSS オブジェクトのセマンティクスを維持し、他の OSS クライアントとの完全な互換性を確保します。
背景情報
キャッシュモードでは、元の OSS オブジェクトのセマンティクスが維持されるため、既存のデータを移行または変換することなく JindoFS を使用できます。ローカルクラスターのキャッシュにより、データアクセスパフォーマンスが向上し、OSS の読み取りおよび書き込み操作における帯域幅消費が削減されます。
構成
- OSS スキーム
詳細については、「OSS スキームの構成(推奨)」をご参照ください。
- JFS スキーム
詳細については、「JFS スキームの構成」をご参照ください。
OSS スキーム(推奨)
OSS スキームは、標準的な oss://<bucket_name>/<path_of_your_file> パス形式を使用します。E-MapReduce クラスターを作成した時点で追加の構成なしで即座に使用可能であり、OSS から読み取りまたは OSS に書き込みを行う既存のジョブも修正なしで実行できます。
JFS スキーム
- SmartData サービスに移動します。
- EMR コンソール にログインします。
- 上部ナビゲーションバーで、必要に応じてリージョンとリソースグループを選択します。
- Clusters タブをクリックします。
- Clusters ページで、ご利用のクラスターを見つけ、[操作] 列の Details をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- EMR コンソール にログインします。
- bigboot サービスの構成ページに移動します。
- Configure タブをクリックします。
- bigboot をクリックします。
- 次のパラメーターを構成します。
JindoFS は複数の名前空間をサポートしています。本トピックでは、例として名前空間
testを使用します。- jfs.namespaces を test に設定します。
test は例示の名前空間名です。複数の名前空間を構成する場合は、名前をカンマ (,) で区切って指定します。
- Custom Configuration をクリックします。Add Configuration Item ダイアログボックスで、次のパラメーターを追加します。
パラメーター 説明 例 jfs.namespaces.test.oss.uri test名前空間のストレージバックエンド。oss://<oss_bucket>/<oss_dir>/ 説明 このパラメーターには、OSS バケット内の特定のディレクトリまたはルートディレクトリを指定する必要があります。jfs.namespaces.test.mode test名前空間でキャッシュモードを使用することを指定します。cache
- jfs.namespaces を test に設定します。
- 右上隅で Save をクリックします。
- 右上隅で を選択します。
再起動後、
jfs://test/<path_to_your_file>パス形式でファイルにアクセスできるようになります。この名前空間内のファイルは、jfs.namespaces.test.oss.uri で指定されたルートディレクトリに基づいて整理されます。たとえば、jfs://test/hello.txtは、実際の OSS オブジェクト oss://<oss_bucket>/<oss_dir>/hello.txt に対応します。
キャッシュの有効化
JindoFS は、頻繁にアクセスされるデータブロックをローカルディスクにキャッシュできます。キャッシュはデフォルトで無効になっており、すべての読み取り操作は直接 OSS にアクセスします。
- サービスの Configure タブで、client
- jfs.cache.data-cache.enable パラメーターを 1 に設定して、キャッシュを有効にします。
これはクライアント側の構成であり、SmartData サービスを再起動する必要はありません。
キャッシュを有効化した後、Jindo サービスがローカルキャッシュを自動的に管理し、構成されたウォーターマークに基づいてデータをエビクションします。ワークロードに応じてストレージ比率を構成してください。詳細については、「ウォーターマークによるディスク領域の制御」をご参照ください。
ディスク領域のウォーターマーク制御
JindoFS は OSS をストレージバックエンドとして使用しており、膨大なストレージ容量を提供します。ただし、ご利用のクラスター上のローカルディスク領域は有限です。この領域を管理するために、JindoFS はローカルキャッシュからコールドデータを自動的にエビクションします。storage.watermark.high.ratio および storage.watermark.low.ratio パラメーターを使用して、このエビクション動作を制御できます。これらのパラメーターには、ディスク領域使用率を表す 0 ~ 1 の範囲の 10 進数値を指定します。
- ディスクのウォーターマークを構成します。Service Configuration セクションで、storage タブをクリックし、次のパラメーターを変更します。
パラメーター 説明 storage.watermark.high.ratio ディスク使用率の高ウォーターマーク。データディスク上の JindoFS データディレクトリがこの比率に達すると、JindoFS はクリーンアッププロセスをトリガーします。デフォルト値:0.4。 storage.watermark.low.ratio ディスク使用率の低ウォーターマーク。クリーンアッププロセスがトリガーされた後、JindoFS はコールドデータを削除し、JindoFS データディレクトリのディスク使用率がこの比率まで低下するようにします。デフォルト値:0.2。 説明 高ウォーターマークを設定することで、JindoFS に割り当てるディスク領域の量を制御できます。低ウォーターマークは高ウォーターマークより小さくする必要があります。ワークロードに応じて適切な値を設定してください。 - 構成を保存します。
- 右上隅で Save をクリックします。
- 変更する ダイアログボックスで、変更理由を入力し、構成の自動更新 をオンにします。
- OK をクリックします。
- 変更を適用するために Jindo ストレージサービスを再起動します。
- 右上隅で を選択します。
- クラスター操作 ダイアログボックスで、必要なパラメーターを設定し、OK をクリックします。
- Confirm ダイアログボックスで、OK をクリックします。
OSS バケットへのアクセス
- OSS スキーム
- サービスの Configure タブで、smartdata-site
- Custom Configuration をクリックします。Add Configuration Item ダイアログボックスで、次のパラメーターを追加し、OK をクリックします。
パラメーター 説明 fs.jfs.cache.oss-accessKeyId OSS ストレージバックエンドの AccessKey ID。 fs.jfs.cache.oss-accessKeySecret OSS ストレージバックエンドの AccessKey Secret。 fs.jfs.cache.oss-endpoint OSS ストレージバックエンドのエンドポイント。
- JFS スキーム
- [Configure] タブの [] サービスで、[bigboot] タブをクリックします。
- jfs.namespaces パラメーターを test に設定します。
- Custom Configuration をクリックします。Add Configuration Item ダイアログボックスで、次のパラメーターを追加し、OK をクリックします。
パラメーター 説明 jfs.namespaces.test.oss.uri test名前空間のストレージバックエンド。例:oss://<oss_bucket.endpoint>/<oss_dir>。エンドポイントは URI 内に直接指定します。
jfs.namespaces.test.oss.access.key OSS ストレージバックエンドの AccessKey ID。 jfs.namespaces.test.oss.access.secret OSS ストレージバックエンドの AccessKey Secret。
高度な設定
これらのクライアント側の構成は、SmartData サービスを再起動せずに有効になります。
- Service Configuration セクションの client タブで、次のパラメーターを構成します。
パラメーター 説明 client.oss.upload.threads 各ファイル書き込みストリームの OSS アップロードスレッド数。デフォルト:4。 client.oss.upload.max.parallelism プロセスごとの最大同時 OSS アップロード数。アップロードスレッドによる帯域幅およびメモリ使用量を制限します。デフォルト:16。 - Service Configuration セクションの smartdata-site タブで、次のパラメーターを構成します。
パラメーター 説明 fs.jfs.cache.copy.simple.max.byte リネーム時の標準コピーに使用される最大ファイルサイズ。このしきい値未満のファイルは標準コピーインターフェイスを使用し、それ以上のファイルはマルチパートコピーインターフェイスを使用して効率を向上させます。 説明 OSS 高速コピー機能を有効にしている場合は、このパラメーターを -1 に設定して、すべてのファイルサイズで標準コピーインターフェイスを使用し、高速コピーを活用して最適なリネームパフォーマンスを実現してください。fs.jfs.cache.write.buffer.size ファイル書き込みストリームのバッファーサイズ。2 のべき乗で、最大 8 MB まで指定可能です。同時書き込みストリームが原因でメモリ使用量が高くなる場合は、この値を小さくしてください。デフォルト:1048576。 fs.oss.committer.magic.enabled Jindo ジョブコミッターを有効にします。これにより、ジョブコミットフェーズでのリネーム操作を回避してパフォーマンスを向上させます。デフォルト:true。 説明 OSS などのオブジェクトストレージシステムは、リネーム操作時のパフォーマンスが劣化します。Jindo ジョブコミッターは、キャッシュモードでこの問題に対処します。