Ranger をキャッシュとダウンスコーピングで使用する

キャッシュ保存を有効にする

このセクションでは、トークンの暗号化と復号を行う Ranger Key Management System(KMS)のラウンドトリップを減らすために、Ranger でキャッシュを有効にする手順について説明します。

  1. Dataproc クラスタ VM に memcached をインストールします。デフォルトでは、memcached サーバーは VM ポート 11211(localhost:11211)で起動します。

    sudo apt-get install -y memcached
    

  2. Dataproc クラスタ VM の /etc/dataproc-ranger-gcs-plugin/conf/ranger-gcs-site.xml Ranger 構成ファイルで、次のプロパティを設定します。

    <property>
    <name>authorization.service.remoteCaching.address</name>
    <value>localhost:11211</value>
    </property>
    <property> <name>authorization.service.remoteCaching.class</name> <value>com.google.cloud.hadoop.ranger.gcs.authorization.caching.MemcachedCache</value> </property>
    <property> <name>authorization.service.remoteCaching.encryption.key.uri</name> <value>gcp-kms://projects/PROJECT_ID_OF_KMS_KEY/locations/REGION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME</value> </property>

  3. 認可サービスを再起動します。

    sudo systemctl restart ranger-gcs-plugin-authorization-server 
    

キャッシュのステータスを表示する

telnet を使用して、Ranger キャッシュのステータスを確認できます。

  1. telnet をインストールします。

    sudo apt-get install -y telnet 
    

  2. telnet を使用して、VM ポート 11211memcache に接続します。

    sudo telnet 127.0.0.1 11211
    

  3. telnet コマンドを使用して、次のコマンドを含むキャッシュ ステータスを表示します。

    • stats items: キャッシュ アイテムのステータスを一覧表示します。出力例:
      STAT items:17:number 2
      STAT items:17:number_hot 0
      STAT items:17:number_warm 0
      STAT items:17:number_cold 2
      
    • stats cachedump: キャッシュに保存されているキーを一覧表示します。出力例:
      stats cachedump 17 2
      ITEM 0616eeeeb54e23a09505da5bf75cd7fafe733eacf0d07bd7b1ac9cf46d17c188 [3051 b; 1707948281 s]
      ITEM d23645df9c79290d59ddb1b9710ff04fee37aa0b5de866b9b6d56b54641d68b4 [3078 b; 1707948281 s]
      
    • flush_all: キャッシュ アイテムを無効にします。

Cloud Storage アクセス トークンのスコープを狭める

外部 Hive テーブルが参照する Cloud Storage パスをアップスコープ(アップスコープ)するには、Ranger アクセス トークンをダウンスコープする必要があります。

すべてのパーティションとサブパーティションをテーブルレベルに移動するには、Dataproc クラスタ VM の ranger-gcs-site.xml 構成ファイルで downscope.table.partition-name.pruning.enabled プロパティを true に設定します。

<property>
  <name>downscope.table.partition-name.pruning.enabled</name>
  <value>true</value>
</property>

例:

  • Cloud Storage バケットの名前: gs://warehouse
  • 元のアクセス トークンのパス: warehouse/hive/table/type=debit/year=2017/month=Aug/day=01/
  • downscope.table.partition-name.pruning.enabledtrue に設定した後、アクセス トークンのパスをアップスコープしました。warehouse/hive/table/