Sauvegarder et restaurer un schéma Ranger

Cette page explique comment sauvegarder et restaurer un schéma Ranger sur Dataproc avec des clusters Ranger.

Avant de commencer

  1. Créez un bucket si nécessaire. Vous devez avoir accès à un bucket Cloud Storage, que vous utiliserez pour stocker et restaurer un schéma Ranger.

    Pour créer un bucket :

    1. Dans la Google Cloud console, accédez à la page Buckets de Cloud Storage.

      Accéder à la page "Buckets"

    2. Cliquez sur Créer.
    3. Sur la page Créer un bucket, saisissez les informations concernant votre bucket. Pour passer à l'étape suivante, cliquez sur Continuer.
      1. Dans la section Premiers pas, procédez comme suit :
      2. Dans la section Choisir l'emplacement de stockage de vos données, procédez comme suit :
        1. Sélectionnez un type d'emplacement.
        2. Choisissez un emplacement où les données de votre bucket seront stockées de manière permanente dans le menu déroulant Type d'emplacement.
          • Si vous sélectionnez le type d'emplacement birégional, vous pouvez également choisir d'activer la réplication turbo à l'aide de la case à cocher correspondante.
        3. Pour configurer la réplication entre buckets, sélectionnez Ajouter une réplication entre buckets via le service de transfert de stockage , puis procédez comme suit :

          Configurer la réplication entre buckets

          1. Dans le menu Bucket, sélectionnez un bucket.
          2. Dans la section Paramètres de réplication , cliquez sur Configurer pour configurer les paramètres du job de réplication.

            Le volet Configurer la réplication entre buckets s'affiche.

            • Pour filtrer les objets à répliquer en fonction du préfixe de leur nom, saisissez le préfixe avec lequel vous souhaitez inclure ou exclure des objets, puis cliquez sur Ajouter un préfixe.
            • Pour définir une classe de stockage pour les objets répliqués, sélectionnez-en une dans le menu Classe de stockage. Si vous ignorez cette étape, les objets répliqués utiliseront la classe de stockage par défaut du bucket de destination.
            • Cliquez sur OK.
      3. Dans la section Choisir comment stocker vos données, procédez comme suit :
        1. Sélectionnez une classe de stockage par défaut pour le bucket ou bien classe automatique pour gérer automatiquement les classes de stockage des données de votre bucket.
        2. Pour activer l'espace de noms hiérarchique, dans la section Optimiser le stockage pour les charges de travail utilisant beaucoup de données, sélectionnez Activer l'espace de noms hiérarchique sur ce bucket.
      4. Dans la section Choisir comment contrôler l'accès aux objets, indiquez si votre bucket applique ou non la protection contre l'accès public, et sélectionnez une méthode de contrôle des accès pour les objets de votre bucket.
      5. Dans la section Choisir comment protéger les données d'objet, procédez comme suit :
        • Sous Protection des données , sélectionnez les options que vous voulez définir pour votre bucket.
          • Pour activer la suppression réversible, cochez la case Règle de suppression réversible (pour la récupération de données), puis spécifiez le nombre de jours pendant lesquels vous souhaitez conserver les objets après leur suppression.
          • Pour définir la gestion des versions d'objets, cochez la case Gestion des versions d'objets (pour le contrôle des versions), puis spécifiez le nombre maximal de versions par objet et le nombre de jours après lesquels les versions obsolètes expirent.
          • Pour activer la règle de conservation sur les objets et les buckets, cochez la case Conservation (pour la conformité), puis procédez comme suit :
        • Pour choisir comment vos données d'objet seront chiffrées, développez la section Chiffrement des données (), puis sélectionnez une méthode de chiffrement des données.
    4. Cliquez sur Créer.

Sauvegarder un schéma Ranger

  1. Utilisez SSH pour vous connecter au nœud maître Dataproc du cluster avec le schéma Ranger. Exécutez les commandes de cette section dans la session de terminal SSH qui s'exécute sur le nœud maître.

  2. Définissez des variables d'environnement.

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

    Remplacez les éléments suivants :

    • MySQL password : vous pouvez ouvrir /etc/mysql/my.cnf sur le nœud maître du cluster pour copier le mot de passe MySQL.

    • bucket name : nom du bucket Cloud Storage à utiliser pour stocker le schéma Ranger.

    • schema filename : spécifiez un nom de fichier, sans l'extension .sql. Le schéma Ranger est enregistré dans ce fichier sur le nœud maître, puis dans bucket name dans Cloud Storage .

  3. Arrêtez les services Hive.

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

  4. Empêchez toute modification des tables de schéma 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. Enregistrez le schéma Ranger dans un fichier .sql.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
    
  6. Réinitialisez les droits 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. Redémarrez les services Hive et 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. Copiez le schéma Ranger dans Cloud Storage.

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

Restaurer un schéma Ranger

  1. Utilisez SSH pour vous connecter au nœud maître Dataproc du cluster dans lequel vous allez restaurer le schéma du cluster. Exécutez les commandes de cette section dans la session de terminal SSH qui s'exécute sur le nœud maître.

  2. Définissez des variables d'environnement.

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

    Remplacez les éléments suivants :

    • MySQL password : vous pouvez ouvrir /etc/mysql/my.cnf sur le nœud maître du cluster pour copier le mot de passe MySQL.

    • bucket name : nom du bucket Cloud Storage contenant le schéma Ranger enregistré.

    • schema filename : Nom du fichier de schéma Ranger, sans l'extension de fichier, enregistré dans Cloud Storage..sqlbucket name

  3. Arrêtez les services Hive.

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

  4. Empêchez toute modification des tables de schéma 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. Copiez le fichier .sql du schéma Ranger dans Cloud Storage vers le nœud maître du cluster.

    gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
    
  6. Restaurez le schéma Ranger. Cette étape écrase le contenu du schéma Ranger existant.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
    
  7. Réinitialisez les droits 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. Mettez à jour les fichiers de configuration Ranger. Remplacez l'hôte de la base de données Ranger par un nouveau nom d'hôte de base de données dans les fichiers suivants avec les propriétés suivantes :

    Fichier Propriété
    ranger-hdfs-security.xml ranger.plugin.hdfs.policy.rest.url
    ranger-yarn-security.xml ranger.plugin.yarn.policy.rest.url
  9. Redémarrez les services Hive et 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