Cette page explique comment sauvegarder et restaurer un schéma Ranger sur Dataproc avec des clusters Ranger.
Avant de commencer
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 :
- Dans la Google Cloud console, accédez à la page Buckets de Cloud Storage.
- Cliquez sur Créer.
- Sur la page Créer un bucket, saisissez les informations concernant votre bucket. Pour passer à l'étape suivante, cliquez sur Continuer.
-
Dans la section Premiers pas, procédez comme suit :
- Saisissez un nom unique qui répond aux exigences relatives aux noms des buckets.
- Pour ajouter une
étiquette de bucket,
développez la section Étiquettes (),
cliquez sur add_box
Ajouter une étiquette, puis spécifiez une
keyet unevaluepour votre étiquette.
-
Dans la section Choisir l'emplacement de stockage de vos données, procédez comme suit :
- Sélectionnez un type d'emplacement.
- 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.
- 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
- Dans le menu Bucket, sélectionnez un bucket.
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.
-
Dans la section Choisir comment stocker vos données, procédez comme suit :
- 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.
- 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.
- 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.
-
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 activer le verrouillage de conservation des objets, cochez la case Activer la conservation des objets.
- Pour activer le verrouillage de bucket, cochez la case Définir une règle de conservation de bucket, puis choisissez une unité de temps et une durée pour votre période de conservation.
- 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.
- Sous Protection des données , sélectionnez les options que vous
voulez définir pour votre bucket.
-
Dans la section Premiers pas, procédez comme suit :
- Cliquez sur Créer.
Sauvegarder un schéma Ranger
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.
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.cnfsur 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 .
Arrêtez les services Hive.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
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;Enregistrez le schéma Ranger dans un fichier
.sql.mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sqlRé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;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
Copiez le schéma Ranger dans Cloud Storage.
gcloud storage cp ${SCHEMA_FILE}.sql gs://${BUCKET_NAME}
Restaurer un schéma Ranger
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.
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.cnfsur 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
Arrêtez les services Hive.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
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;Copiez le fichier
.sqldu schéma Ranger dans Cloud Storage vers le nœud maître du cluster.gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .Restaurez le schéma Ranger. Cette étape écrase le contenu du schéma Ranger existant.
mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sqlRé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;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.xmlranger.plugin.hdfs.policy.rest.urlranger-yarn-security.xmlranger.plugin.yarn.policy.rest.urlRedé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