Crea una copia de seguridad de un esquema de Ranger y restablécelo

En esta página, se muestra cómo crear una copia de seguridad y restablecer un esquema de Ranger en Managed Service para Apache Spark 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. En la consola de Google Cloud , ve a la página Buckets de Cloud Storage.

      Ir a Buckets

    2. Haz clic en Crear.
    3. En la página Crear un bucket, ingresa la información de tu bucket. Para ir al paso siguiente, haz clic en Continuar.
      1. En la sección Primeros pasos, haz lo siguiente:
        • Ingresa un nombre único a nivel global que cumpla con los requisitos de nombre de los buckets.
        • Para agregar una etiqueta de bucket, expande la sección Etiquetas (), haz clic en Agregar etiqueta y especifica una key y un value para tu etiqueta.
      2. En la sección Elige dónde almacenar tus datos, haz lo siguiente:
        1. Selecciona un tipo de ubicación
        2. Elige una ubicación en la que se almacenen de forma permanente los datos de tu bucket en el menú desplegable Tipo de ubicación.
          • Si seleccionas el tipo de ubicación birregional, también puedes habilitar la replicación turbo con la casilla de verificación correspondiente.
        3. Para configurar la replicación bucket buckets, selecciona Agregar replicación entre bucket a través del Servicio de transferencia de almacenamiento y sigue estos pasos:

          Configura la replicación entre buckets

          1. En el menú Bucket, selecciona un bucket.
          2. En la sección Configuración de replicación, haz clic en Configurar para configurar los parámetros del trabajo de replicación.

            Aparecerá el panel Configurar la replicación entre buckets.

            • Para filtrar los objetos que se replicarán por prefijo de nombre de objeto, ingresa un prefijo con el que quieras incluir o excluir objetos y, luego, haz clic en Agregar un prefijo.
            • Para establecer una clase de almacenamiento para los objetos replicados, selecciona una clase de almacenamiento en el menú Clase de almacenamiento. Si omites este paso, los objetos replicados usarán la clase de almacenamiento del bucket de destino de forma predeterminada.
            • Haz clic en Listo.
      3. En la sección Elige cómo almacenar tus datos, haz lo siguiente:
        1. Selecciona una clase de almacenamiento predeterminada para el bucket o Autoclass para la administración automática de clases de almacenamiento de los datos de tu bucket.
        2. Para habilitar el espacio de nombres jerárquico, en la sección Optimizar el almacenamiento para cargas de trabajo con uso intensivo de datos, selecciona Habilitar el espacio de nombres jerárquico en este bucket.
      4. En la sección Elige cómo controlar el acceso a los objetos, selecciona si tu bucket aplica o no la prevención del acceso público y elige un método de control de acceso para los objetos del bucket.
      5. En la sección Elige cómo proteger los datos de objetos, haz lo siguiente:
        • Selecciona cualquiera de las opciones de Protección de datos que desees configurar para tu bucket.
          • Para habilitar la eliminación no definitiva, haz clic en la casilla de verificación Política de eliminación no definitiva (para la recuperación de datos) y especifica la cantidad de días que deseas conservar los objetos después de la eliminación.
          • Para configurar el control de versiones de objetos, haz clic en la casilla de verificación Control de versiones de objetos (para el control de versión) y especifica la cantidad máxima de versiones por objeto y la cantidad de días después de los cuales vencen las versiones no actuales.
          • Para habilitar la política de retención en objetos y buckets, haz clic en la casilla de verificación Retención (para cumplimiento) y, luego, haz lo siguiente:
            • Para habilitar el bloqueo de retención de objetos, haz clic en la casilla de verificación Habilitar la retención de objetos.
            • Para habilitar el Bloqueo del bucket, haz clic en la casilla de verificación Establecer política de retención del bucket y elige una unidad de tiempo y una duración para tu período de retención.
        • Para elegir cómo se encriptarán los datos de tus objetos, expande la sección Encriptación de datos () y selecciona un método de encriptación de datos.
    4. Haz clic en Crear.

Crea una copia de seguridad de un esquema de Ranger

  1. Usa SSH para conectarte al nodo principal de Managed Service para Apache Spark 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 principal 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 .sql. El esquema de Ranger se guarda en este archivo en el nodo principal y, luego, se guarda 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 cambios en las tablas de esquema 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}
    

Restablece un esquema de Ranger

  1. Usa SSH para conectarte al nodo principal de Managed Service para Apache Spark 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 principal 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 de esquema de Ranger, sin la extensión .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 cambios en las tablas de esquema 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 de esquema de Ranger .sql de Cloud Storage en el nodo principal del clúster.

    gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
    
  6. Restablece el esquema de Ranger. Este paso 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