Crea una copia de seguridad de un esquema de Ranger y restablecelo

En esta página, se muestra cómo crear una copia de seguridad y restablecer un esquema de Ranger en Dataproc con clústeres de Ranger.

Antes de comenzar

  1. Crea un bucket si es necesario. Debes tener acceso a un bucket de Cloud Storage, que usarás para almacenar y restablecer un esquema de Ranger.

    Sigue estos pasos para crear un bucket:

    1. In the Google Cloud console, go to the Cloud Storage Buckets page.

      Go to Buckets page

    2. Click Create bucket.
    3. On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
      • For Name your bucket, enter a name that meets the bucket naming requirements.
      • For Choose where to store your data, do the following:
        • Select a Location type option.
        • Select a Location option.
      • For Choose a default storage class for your data, select a storage class.
      • For Choose how to control access to objects, select an Access control option.
      • For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
    4. Click Create.

Crea una copia de seguridad de un esquema de Ranger

  1. Usa SSH para conectarte al nodo principal de Dataproc del clúster con el esquema de Ranger. Ejecuta los comandos de esta sección en la sesión de la terminal de SSH que se ejecuta en el nodo principal.

  2. Configurar variables de entorno

    BUCKET_NAME=bucket name \
      MYSQL_PASSWORD=MySQL password
      SCHEMA_FILE=schema filename
    

    Reemplaza lo siguiente:

    • MySQL password: Puedes abrir /etc/mysql/my.cnf en el nodo maestro del clúster para copiar la contraseña de MySQL.

    • bucket name: Es el nombre del bucket de Cloud Storage que se usará para almacenar el esquema de Ranger.

    • schema filename: Especifica un nombre de archivo sin la extensión de nombre de archivo .sql. El esquema de Ranger se guarda en este archivo en el nodo principal y, luego, en bucket name en Cloud Storage .

  3. Detén los servicios de Hive.

    sudo systemctl stop hive-metastore.service
    sudo systemctl stop hive-server2.service
    

  4. Evita los cambios en las tablas de esquemas de Ranger.

    mysql -u root -p${MYSQL_PASSWORD}
    REVOKE ALL PRIVILEGES ON ranger.* from 'rangeradmin'@'localhost';
    GRANT SELECT ON ranger.* TO 'rangeradmin'@'localhost';
    FLUSH PRIVILEGES;
    SHOW GRANTS FOR 'rangeradmin'@'localhost';
    exit;
    
  5. Guarda el esquema de Ranger en un archivo .sql.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
    
  6. Restablece los privilegios de Ranger.

    mysql -u root -p${MYSQL_PASSWORD}
    REVOKE SELECT ON ranger.* from 'rangeradmin'@'localhost';
    GRANT ALL PRIVILEGES ON ranger.* to 'rangeradmin'@'localhost';
    FLUSH PRIVILEGES;
    SHOW GRANTS FOR 'rangeradmin'@'localhost';
    exit;
    
  7. Reinicia los servicios de Hive y Ranger.

    sudo systemctl start hive-metastore.service
      sudo systemctl start hive-server2.service
      sudo systemctl restart ranger-admin.service
      sudo systemctl restart ranger-usersync.service
    
  8. Copia el esquema de Ranger en Cloud Storage.

    gcloud storage cp ${SCHEMA_FILE}.sql gs://${BUCKET_NAME}
    

Cómo restablecer un esquema de Ranger

  1. Usa SSH para conectarte al nodo principal de Dataproc del clúster en el que restablecerás el esquema del clúster. Ejecuta los comandos de esta sección en la sesión de la terminal de SSH que se ejecuta en el nodo principal.

  2. Configurar variables de entorno

    BUCKET_NAME=bucket name \
      MYSQL_PASSWORD=MySQL password
      SCHEMA_FILE=schema filename
    

    Reemplaza lo siguiente:

    • MySQL password: Puedes abrir /etc/mysql/my.cnf en el nodo maestro del clúster para copiar la contraseña de MySQL.

    • bucket name: Es el nombre del bucket de Cloud Storage que contiene el esquema de Ranger guardado.

    • schema filename: Es el nombre del archivo del esquema de Ranger, sin la extensión de archivo .sql, guardado en bucket name en Cloud Storage.

  3. Detén los servicios de Hive.

    sudo systemctl stop hive-metastore.service
    sudo systemctl stop hive-server2.service
    

  4. Evita los cambios en las tablas de esquemas de Ranger.

    mysql -u root -p${MYSQL_PASSWORD}
    REVOKE ALL PRIVILEGES ON ranger.* from 'rangeradmin'@'localhost';
    GRANT SELECT ON ranger.* TO 'rangeradmin'@'localhost';
    FLUSH PRIVILEGES;
    SHOW GRANTS FOR 'rangeradmin'@'localhost';
    exit;
    
  5. Copia el archivo .sql del esquema de Ranger en Cloud Storage al nodo maestro del clúster.

    gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
    
  6. Restablece el esquema de Ranger. Con este paso, se reemplaza el contenido del esquema de Ranger existente.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
    
  7. Restablece los privilegios de Ranger.

    mysql -u root -p${MYSQL_PASSWORD}
    REVOKE SELECT ON ranger.* from 'rangeradmin'@'localhost';
    GRANT ALL PRIVILEGES ON ranger.* to 'rangeradmin'@'localhost';
    FLUSH PRIVILEGES;
    SHOW GRANTS FOR 'rangeradmin'@'localhost';
    exit;
    
  8. Actualiza los archivos de configuración de Ranger. Cambia el host de la base de datos de Ranger a un nuevo nombre de host de la base de datos en los siguientes archivos con las siguientes propiedades:

    Archivo Propiedad
    ranger-hdfs-security.xml ranger.plugin.hdfs.policy.rest.url
    ranger-yarn-security.xml ranger.plugin.yarn.policy.rest.url
  9. Reinicia los servicios de Hive y Ranger.

    sudo systemctl start hive-metastore.service
      sudo systemctl start hive-server2.service
      sudo systemctl restart ranger-admin.service
      sudo systemctl restart ranger-usersync.service