JindoCache は、ご利用のクラスター上にファイルを透過的にキャッシュすることで、Object Storage Service (OSS) へのアクセスを高速化します。
前提条件
制限事項
ファイルは OSS 内でオブジェクトとして保存されます。
操作手順
JindoCache は CacheSet を使用してキャッシングポリシーを管理します。異なるパスに対して異なるキャッシングポリシーを定義でき、1 つのクラスターに 1 つ以上の CacheSet を設定できます。
-
キャッシングポリシーを選択します。
-
クラスターにログインします。詳細については、「クラスターへのログイン」をご参照ください。
-
cacheset.xmlファイルを作成します。この例では、
cacheset.xmlファイルは/pathディレクトリに配置されています。<?xml version="1.0" encoding="UTF-8"?> <cachesets> <cacheset> <name>name1</name> <path>oss://emr-test/dir1</path> <cacheStrategy>DISTRIBUTED</cacheStrategy> <metaPolicy> <type>ALWAYS</type> </metaPolicy> <readPolicy>CACHE_ASIDE</readPolicy> <writePolicy>WRITE_AROUND</writePolicy> </cacheset> <cacheset> <name>name2</name> <path>oss://emr-test/dir2</path> <cacheStrategy>DHT</cacheStrategy> <metaPolicy> <type>ONCE</type> </metaPolicy> <readPolicy>CACHE_ASIDE</readPolicy> <writePolicy>WRITE_AROUND</writePolicy> </cacheset> </cachesets>パラメーター
説明
例
name
CacheSet の名前です。名前は一意である必要があります。重複する名前を指定すると、既存の CacheSet が上書きされます。
name1
path
キャッシングポリシーを適用する親パスです。すべてのサブパスはこの CacheSet のポリシーを継承します。
oss://emr-test/dir1
cacheStrategy
キャッシング戦略です。有効な値は DISTRIBUTED および DHT (分散ハッシュテーブル) です。DHT 戦略は小規模ファイル向けの読み取り専用高速化ポリシーです。
要件に応じて戦略を選択してください。
DISTRIBUTED
metaPolicy
メタデータキャッシングポリシーです。有効な値は ALWAYS および ONCE です。
-
ALWAYS:メタデータはキャッシュされません。すべてのメタデータ操作はリモートストレージに直接アクセスします。
-
ONCE:メタデータはキャッシュされます。初回のみリモートストレージからメタデータを読み取り、以降の読み取りはローカルキャッシュを使用します。
要件に応じてポリシーを選択してください。
説明cacheStrategyが DHT に設定されている場合、metaPolicyは ONCE に設定する必要があります。ALWAYS
readPolicy
ファイルの読み取りポリシーです。CACHE_ASIDE のみサポートされています。このポリシーでは、キャッシュからのデータ読み取りを優先します。
CACHE_ASIDE
writePolicy
ファイルの書き込みポリシーです。以下のポリシーがサポートされています。
-
WRITE_AROUND:データはリモートストレージに直接書き込まれます。
-
CACHE_ONLY:データはステージングエリアに書き込まれます。
説明CACHE_ONLY ポリシーは ONCE ポリシーと併用する必要があります。
-
WRITE_THROUGH:データはキャッシュに書き込まれます。
WRITE_AROUND
-
-
次のコマンドを実行して、JindoCache システム内の CacheSet 構成をリフレッシュします。
jindocache -refreshCacheSet -path /path/cacheset.xmlコマンドが正常に実行されると、
Successfully refresh cacheset !!!というメッセージが返されます。JindoCache コマンドの詳細については、「JindoCache CLI 使用方法」をご参照ください。 -
listCacheSet コマンドを使用して、システム内の CacheSet 情報を確認できます。
jindocache -listCacheSet
-
-
JindoSDK を構成します。
Hadoop-Common に JindoCache OSS 実装クラスを設定します。EMR コンソールで Hadoop-Common サービスの設定ページに移動し、core-site.xml タブをクリックして、以下のパラメーターを設定します。詳細については、「設定項目の管理」をご参照ください。
パラメーター
説明
fs.xengine
値は jindocache である必要があります。
このパラメーターを空のままにすると、クライアントはキャッシュを使用せず、バックエンドと直接通信します。
説明これはクライアント側の設定です。JindoCache サービスを再起動する必要はありません。
構成が完了すると、OSS にアクセスするタスクは自動的にキャッシングを使用します。JindoCache は透過的にキャッシュするため、タスクの修正は不要です。タスクが OSS からデータを読み取ると、そのデータは JindoCache にキャッシュされます。同じデータの後続の読み取りはキャッシュヒットとなり、読み取りパフォーマンスが向上します。
よくある質問
OSS 認証情報の設定
JindoCache は OSS へのパスワードなしのアクセスをサポートしています。クロスアカウントアクセスを行う場合は、AccessKey ID、AccessKey Secret、エンドポイントを含む認証情報を設定する必要があります。
-
JindoCache サービスの common タブに移動します。
-
E-MapReduce コンソール にログインします。
-
上部ナビゲーションバーでリージョン およびリソースグループ を選択します。
-
Clusters ページで対象のクラスターを見つけ、Services をクリックします。
-
JindoCache サービスセクションで、Configure をクリックします。
-
common タブをクリックします。
-
-
設定項目を追加して適用します。
-
Add Configuration Item をクリックします。
-
設定項目の追加 ダイアログボックスで、以下の設定項目を追加します。
設定項目の追加および適用方法の詳細については、「設定項目の管理」をご参照ください。
説明XXXは OSS バケットの名前に置き換えてください。パラメーター
説明
jindocache.oss.bucket.XXX.accessKeyId
OSS バケットの AccessKey ID です。
jindocache.oss.bucket.XXX.accessKeySecret
OSS バケットの AccessKey Secret です。
jindocache.oss.bucket.XXX.endpoint
OSS バケットのエンドポイントです。
-