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 :
- In the Google Cloud console, go to the Cloud Storage Buckets page.
- Click Create bucket.
- 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.
- Click Create.
Sauvegarder un schéma Ranger
Utiliser 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éfinir 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 cluster. nœud maître pour copier le mot de passe MySQL.bucket name: nom du bucket Cloud Storage à pour stocker le schéma Ranger.
schema filename : spécifiez un nom de fichier, sans l'extension de nom de fichier
.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êcher les modifications apportées aux 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}.sql
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;
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 exécutée sur le nœud maître.
Définir 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 schéma Ranger nom de fichier, sans l'extension de nom de fichier
.sql
, enregistré 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 la 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 de schéma Ranger
.sql
dans Cloud Storage dans le cluster. un nœud maître.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}.sql
Réinitialisez les privilèges du 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 de Ranger. Remplacez l'hôte de base de données Ranger par un nouveau nom d'hôte de la 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
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