Ranger-Schema sichern und wiederherstellen

Auf dieser Seite erfahren Sie, wie Sie ein Ranger-Schema in Dataproc mit Ranger-Clustern sichern und wiederherstellen.

Hinweise

  1. 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:

    1. In the Google Cloud console, go to the Cloud Storage Buckets page.

      Go to Buckets page

    2. Click Create bucket.
    3. 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.
    4. Click Create.

Ranger-Schema sichern

  1. 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.

  2. 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 .

  3. Beenden Sie die Hive-Dienste.

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

  4. Ä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;
    
  5. Speichern Sie das Ranger-Schema in einer .sql-Datei.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
    
  6. 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;
    
  7. 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
    
  8. Kopieren Sie das Ranger-Schema in Cloud Storage.

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

Ranger-Schema wiederherstellen

  1. 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.

  2. 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.

  3. Beenden Sie die Hive-Dienste.

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

  4. Ä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;
    
  5. Kopieren Sie die Ranger-Schemadatei .sql in Cloud Storage auf den Clustermasterknoten.

    gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
    
  6. 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
    
  7. 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;
    
  8. 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
  9. 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