Usar Ranger con almacenamiento en caché y reducción de permisos

Habilitar el almacenamiento en caché

En esta sección se indican los pasos para habilitar el almacenamiento en caché con Ranger con el fin de reducir los viajes de ida y vuelta del sistema de gestión de claves (KMS) de Ranger para cifrar y descifrar tokens.

  1. Instala memcached en las VMs del clúster de Dataproc. De forma predeterminada, el servidor memcached se inicia en el puerto 11211 de la VM (localhost:11211).

    sudo apt-get install -y memcached
    

  2. Define las siguientes propiedades en el /etc/dataproc-ranger-gcs-plugin/conf/ranger-gcs-site.xmlarchivo de configuración de Ranger en las VMs del clúster de 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. Reinicia el servicio de autorización.

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

Ver el estado de la caché

Puedes usar telnet para ver el estado de la caché de Ranger.

  1. Instala telnet.

    sudo apt-get install -y telnet
    

  2. Usa telnet para conectarte a memcache en el puerto 11211 de la VM.

    sudo telnet 127.0.0.1 11211
    

  3. Usa los comandos de telnet para ver el estado de la caché, incluidos los siguientes:

    • stats items: muestra el estado de los elementos de la caché. Ejemplo de salida:
      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: muestra las claves almacenadas en la caché. Ejemplo de salida:
      stats cachedump 17 2
      ITEM 0616eeeeb54e23a09505da5bf75cd7fafe733eacf0d07bd7b1ac9cf46d17c188 [3051 b; 1707948281 s]
      ITEM d23645df9c79290d59ddb1b9710ff04fee37aa0b5de866b9b6d56b54641d68b4 [3078 b; 1707948281 s]
      
    • flush_all: Invalida los elementos de la caché.

Reducir el alcance de los tokens de acceso de Cloud Storage

Es posible que tengas que reducir el alcance de los tokens de acceso de Ranger para aumentar el alcance de las rutas de Cloud Storage a las que apunta una tabla de Hive externa.

Para mover todas las particiones y subparticiones al nivel de tabla, define la propiedad downscope.table.partition-name.pruning.enabled en true en el archivo de configuración ranger-gcs-site.xml de las VMs del clúster de Dataproc.

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

Ejemplo:

  • Nombre del segmento de Cloud Storage: gs://warehouse
  • Ruta del token de acceso original: warehouse/hive/table/type=debit/year=2017/month=Aug/day=01/
  • Después de definir downscope.table.partition-name.pruning.enabled como true, ruta del token de acceso con permisos ampliados: warehouse/hive/table/