Utiliser Ranger avec la mise en cache et la réduction du champ d'application

Activer la mise en cache

Cette section répertorie les étapes à suivre pour activer la mise en cache avec Ranger afin de réduire les allers-retours du système de gestion des clés (KMS) Ranger pour chiffrer et déchiffrer les jetons.

  1. Installez memcached sur les VM de cluster Dataproc. Par défaut, le serveur memcached démarre sur le port 11211 de la VM (localhost:11211).

    sudo apt-get install -y memcached
    

  2. Définissez les propriétés suivantes dans le /etc/dataproc-ranger-gcs-plugin/conf/ranger-gcs-site.xml fichier de configuration Ranger sur les VM de cluster Dataproc.

    <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. Redémarrez le service d'autorisation.

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

Afficher l'état du cache

Vous pouvez utiliser telnet pour afficher l'état du cache Ranger.

  1. Installez telnet.

    sudo apt-get install -y telnet
    

  2. Utilisez telnet pour vous connecter à memcache sur le port 11211 de la VM.

    sudo telnet 127.0.0.1 11211
    

  3. Utilisez les commandes telnet pour afficher l'état du cache, y compris les commandes suivantes :

    • stats items : affiche l'état des éléments du cache. Exemple de résultat :
      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 : affiche les clés stockées dans le cache. Exemple de résultat :
      stats cachedump 17 2
      ITEM 0616eeeeb54e23a09505da5bf75cd7fafe733eacf0d07bd7b1ac9cf46d17c188 [3051 b; 1707948281 s]
      ITEM d23645df9c79290d59ddb1b9710ff04fee37aa0b5de866b9b6d56b54641d68b4 [3078 b; 1707948281 s]
      
    • flush_all : invalide les éléments du cache.

Réduire les droits d'accès des jetons d'accès Cloud Storage

Vous devrez peut-être réduire les droits d'accès des jetons d'accès Ranger pour augmenter les droits d'accès des chemins Cloud Storage vers lesquels pointe une table Hive externe.

Pour déplacer toutes les partitions et sous-partitions au niveau de la table, définissez la downscope.table.partition-name.pruning.enabled propriété sur true dans le fichier de configuration ranger-gcs-site.xml sur les VM de cluster Dataproc.

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

Exemple :

  • Nom du bucket Cloud Storage : gs://warehouse
  • Chemin d'accès au jeton d'accès d'origine : warehouse/hive/table/type=debit/year=2017/month=Aug/day=01/
  • Après avoir défini downscope.table.partition-name.pruning.enabled sur true, chemin d'accès au jeton d'accès avec droits d'accès augmentés : warehouse/hive/table/