Questa pagina mostra come eseguire il backup e il ripristino di uno schema Ranger su Dataproc con cluster Ranger.
Prima di iniziare
Crea un bucket, se necessario. Devi avere accesso a un bucket Cloud Storage, che utilizzerai per archiviare e ripristinare uno schema Ranger.
Per creare 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.
Esegui il backup di uno schema Ranger
Utilizza SSH per connetterti al nodo principale Dataproc del cluster con lo schema Ranger. Esegui i comandi in questa sezione nella sessione del terminale SSH in esecuzione sul nodo master.
Imposta le variabili di ambiente.
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
Sostituisci quanto segue:
MySQL password: puoi aprire
/etc/mysql/my.cnf
sul nodo master del cluster per copiare la password di MySQL.bucket name: il nome del bucket Cloud Storage da utilizzare per archiviare lo schema di Ranger.
schema filename: specifica un nome file senza l'estensione
.sql
. Lo schema di Ranger viene salvato in questo file sul nodo principale e poi in bucket name in Cloud Storage .
Interrompi i servizi Hive.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
Impedire le modifiche alle tabelle dello schema di 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;
Salva lo schema Ranger in un file
.sql
.mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
Reimposta i privilegi di 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;
Riavvia i servizi Hive e 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
Copia lo schema di Ranger in Cloud Storage.
gcloud storage cp ${SCHEMA_FILE}.sql gs://${BUCKET_NAME}
Ripristinare uno schema di Ranger
Utilizza SSH per connetterti al nodo master Dataproc del cluster in cui ripristinerai lo schema del cluster. Esegui i comandi in questa sezione nella sessione del terminale SSH in esecuzione sul nodo master.
Imposta le variabili di ambiente.
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
Sostituisci quanto segue:
MySQL password: puoi aprire
/etc/mysql/my.cnf
sul nodo master del cluster per copiare la password di MySQL.bucket name: il nome del bucket Cloud Storage che contiene lo schema Ranger salvato.
schema filename: il nome del nome file dello schema Ranger, senza l'estensione del nome file
.sql
, salvato in bucket name in Cloud Storage.
Interrompi i servizi Hive.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
Impedire le modifiche alle tabelle dello schema di 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;
Copia il file dello schema di Ranger
.sql
in Cloud Storage nel nodo master del cluster.gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
Ripristina lo schema di Ranger. Questo passaggio sovrascrive i contenuti dello schema Ranger esistente.
mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
Reimposta i privilegi di 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;
Aggiorna i file di configurazione di Ranger. Cambia l'host del database Ranger con un nuovo nome dell'host del database nei seguenti file con le seguenti proprietà:
File Proprietà ranger-hdfs-security.xml
ranger.plugin.hdfs.policy.rest.url
ranger-yarn-security.xml
ranger.plugin.yarn.policy.rest.url
Riavvia i servizi Hive e 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