Auf dieser Seite erfahren Sie, wie Sie ein Ranger-Schema in Dataproc mit Ranger-Clustern sichern und wiederherstellen.
Hinweise
Erstellen Sie bei Bedarf einen Bucket. Sie benötigen Zugriff auf einen Cloud Storage-Bucket, in dem Sie ein Ranger-Schema speichern und wiederherstellen.
So erstellen Sie einen 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.
Ranger-Schema sichern
Stellen Sie mit SSH eine Verbindung zum Dataproc-Masterknoten des Clusters mit dem Ranger-Schema her. Führen Sie die Befehle in diesem Abschnitt in der SSH-Terminalsitzung aus, die auf dem Masterknoten ausgeführt wird.
Umgebungsvariablen festlegen
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
Ersetzen Sie Folgendes:
MySQL password: Sie können
/etc/mysql/my.cnf
auf dem Clustermasterknoten öffnen, um das MySQL-Passwort zu kopieren.bucket name: Der Name des Cloud Storage-Bucket, in dem das Ranger-Schema gespeichert werden soll.
schema filename: Geben Sie einen Dateinamen ohne die Dateiendung
.sql
an. Das Ranger-Schema wird in dieser Datei auf dem Masterknoten und dann in bucket name in Cloud Storage gespeichert .
Beenden Sie die Hive-Dienste.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
Änderungen an den Ranger-Schematabellen verhindern
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;
Speichern Sie das Ranger-Schema in einer
.sql
-Datei.mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
Ranger-Berechtigungen zurücksetzen
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;
Starten Sie die Hive- und Ranger-Dienste neu.
sudo systemctl start hive-metastore.service sudo systemctl start hive-server2.service sudo systemctl restart ranger-admin.service sudo systemctl restart ranger-usersync.service
Kopieren Sie das Ranger-Schema in Cloud Storage.
gcloud storage cp ${SCHEMA_FILE}.sql gs://${BUCKET_NAME}
Ranger-Schema wiederherstellen
Stellen Sie mit SSH eine Verbindung zum Dataproc-Masterknoten des Clusters her, in dem Sie das Clusterschema wiederherstellen möchten. Führen Sie die Befehle in diesem Abschnitt in der SSH-Terminalsitzung aus, die auf dem Masterknoten ausgeführt wird.
Umgebungsvariablen festlegen
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
Ersetzen Sie Folgendes:
MySQL password: Sie können
/etc/mysql/my.cnf
auf dem Clustermasterknoten öffnen, um das MySQL-Passwort zu kopieren.bucket name: Der Name des Cloud Storage-Bucket, der das gespeicherte Ranger-Schema enthält.
schema filename: Der Name der Ranger-Schemadatei, ohne die Dateiendung
.sql
, die in bucket name in Cloud Storage gespeichert ist.
Beenden Sie die Hive-Dienste.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
Änderungen an den Ranger-Schematabellen verhindern
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;
Kopieren Sie die Ranger-Schemadatei
.sql
in Cloud Storage auf den Clustermasterknoten.gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
Stellen Sie das Ranger-Schema wieder her. Mit diesem Schritt wird der Inhalt des vorhandenen Ranger-Schemas überschrieben.
mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
Ranger-Berechtigungen zurücksetzen
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;
Aktualisieren Sie die Ranger-Konfigurationsdateien. Ändern Sie den Ranger-Datenbankhost in den folgenden Dateien mit den folgenden Eigenschaften in einen neuen Datenbank-Hostnamen:
Datei Attribut ranger-hdfs-security.xml
ranger.plugin.hdfs.policy.rest.url
ranger-yarn-security.xml
ranger.plugin.yarn.policy.rest.url
Starten Sie die Hive- und Ranger-Dienste neu.
sudo systemctl start hive-metastore.service sudo systemctl start hive-server2.service sudo systemctl restart ranger-admin.service sudo systemctl restart ranger-usersync.service