Ranger-Schema sichern und wiederherstellen

Auf dieser Seite wird beschrieben, wie Sie ein Ranger-Schema in Managed Service for Apache Spark mit Ranger-Clustern sichern und wiederherstellen.

Hinweis

  1. Erstellen Sie bei Bedarf einen Bucket. Sie benötigen Zugriff auf einen Cloud Storage-Bucket, in dem Sie ein Ranger-Schema speichern und aus dem Sie es wiederherstellen können.

    So erstellen Sie einen Bucket:

    1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

      Buckets aufrufen

    2. Klicken Sie auf Erstellen.
    3. Geben Sie auf der Seite Bucket erstellen die Bucket-Informationen ein. Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.
      1. Gehen Sie im Bereich Erste Schritte so vor:
        • Geben Sie einen global eindeutigen Namen ein, der den Anforderungen für Bucket-Namen entspricht.
        • Wenn Sie ein Bucket-Label hinzufügen möchten, maximieren Sie den Bereich Labels (), klicken Sie auf Label hinzufügen, und geben Sie einen key und einen value für das Label an.
      2. Gehen Sie im Bereich Speicherort für Daten auswählen so vor:
        1. Wählen Sie einen Standorttyp aus.
        2. Wählen Sie im Drop-down-Menü Standorttyp einen Standort aus, an dem die Daten Ihres Buckets dauerhaft gespeichert werden sollen.
          • Wenn Sie den Standorttyp Dual-Region auswählen, können Sie auch die Turboreplikation aktivieren, indem Sie das entsprechende Kästchen anklicken.
        3. Wenn Sie die Bucket-übergreifende Replikation einrichten möchten, wählen Sie Bucket-übergreifende Replikation über Storage Transfer Service hinzufügen aus und führen Sie die folgenden Schritte aus:

          Bucket-übergreifende Replikation einrichten

          1. Wählen Sie im Menü Bucket einen Bucket aus.
          2. Klicken Sie im Bereich Replikationseinstellungen auf Konfigurieren , um die Einstellungen für den Replikationsjob zu konfigurieren.

            Der Bereich Bucket-übergreifende Replikation konfigurieren wird angezeigt.

            • Wenn Sie die zu replizierenden Objekte nach dem Objektnamenspräfix filtern möchten, geben Sie ein Präfix ein, mit dem Sie Objekte ein- oder ausschließen möchten, und klicken Sie dann auf Präfix hinzufügen.
            • Wenn Sie eine Speicherklasse für die replizierten Objekte festlegen möchten, wählen Sie im Menü Speicherklasse eine Speicherklasse aus. Wenn Sie diesen Schritt überspringen, wird für replizierte Objekte standardmäßig die Speicherklasse des Ziel-Buckets verwendet.
            • Klicken Sie auf Fertig.
      3. Gehen Sie im Bereich Speicherort für Daten auswählen so vor:
        1. Wählen Sie eine Standardspeicherklasse für den Bucket oder Autoclass für die automatische Speicherklassenverwaltung der Daten Ihres Buckets aus.
        2. Wenn Sie den hierarchischen Namespace aktivieren möchten, wählen Sie im Bereich Speicher für datenintensive Arbeitslasten optimieren die Option Hierarchischen Namespace für diesen Bucket aktivieren aus.
      4. Im Bereich Zugriff auf Objekte steuern wählen Sie aus, ob der Bucket Verhinderung des öffentlichen Zugriffs durchsetzt, und wählen Sie eine Methode für die Zugriffssteuerung für die Objekte Ihres Buckets.
      5. Gehen Sie im Bereich Auswählen, wie Objektdaten geschützt werden so vor:
        • Wählen Sie eine der Optionen unter Datenschutz aus, die Sie für Ihren Bucket festlegen möchten.
          • Wenn Sie das vorläufige Löschen aktivieren möchten, klicken Sie das Kästchen Richtlinie für vorläufiges Löschen (zur Datenwiederherstellung) an, und geben Sie die Anzahl der Tage an, die Objekte nach dem Löschen aufbewahrt werden sollen.
          • Wenn Sie die Objektversionierung festlegen möchten, klicken Sie das Kästchen Objektversionierung (zur Versionsverwaltung) an und geben Sie die maximale Anzahl der Versionen pro Objekt und die Anzahl der Tage an, nach denen die nicht aktuellen Versionen ablaufen.
          • Wenn Sie die Aufbewahrungsrichtlinie für Objekte und Buckets aktivieren möchten, klicken Sie das Kästchen Aufbewahrung (zur Compliance) an und gehen Sie so vor:
            • Wenn Sie die Objektaufbewahrungssperre aktivieren möchten, klicken Sie das Kästchen Objektaufbewahrung aktivieren an.
            • Wenn Sie die Bucket-Sperre aktivieren möchten, klicken Sie das Kästchen Aufbewahrungsrichtlinie für Bucket festlegen an und wählen Sie eine Zeiteinheit und eine Zeitdauer für die Aufbewahrungsdauer aus.
        • Wenn Sie auswählen möchten, wie Ihre Objektdaten verschlüsselt werden, maximieren Sie den Datenverschlüsselung-Bereich () und wählen Sie eine Datenverschlüsselung-Methode aus.
    4. Klicken Sie auf Erstellen.

Ranger-Schema sichern

  1. Stellen Sie mit SSH eine Verbindung zum Masterknoten des Managed Service for Apache Spark-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 Masterknoten des Clusters ö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 an, ohne die .sql Dateinamenerweiterung. Das Ranger-Schema wird in dieser Datei auf dem Masterknoten gespeichert 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. Verhindern Sie Änderungen an den Ranger-Schematabellen.

    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. Setzen Sie die Ranger-Berechtigungen zurück.

    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 nach Cloud Storage.

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

Ranger-Schema wiederherstellen

  1. Stellen Sie mit SSH eine Verbindung zum Masterknoten des Managed Service for Apache Spark-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 Masterknoten des Clusters öffnen, um das MySQL-Passwort zu kopieren.

    • bucket name: Bucket-Name: Der Name des Cloud Storage-Bucket , der das gespeicherte Ranger-Schema enthält.

    • schema filename: Der Name des Ranger-Schema Dateinamens ohne die .sql Dateinamenerweiterung, gespeichert in bucket name in Cloud Storage.

  3. Beenden Sie die Hive-Dienste.

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

  4. Verhindern Sie Änderungen an den Ranger-Schematabellen.

    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 .sql-Datei des Ranger-Schemas in Cloud Storage auf den Masterknoten des Clusters.

    gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
    
  6. Stellen Sie das Ranger-Schema wieder her. Bei diesem Schritt werden die Inhalte des vorhandenen Ranger-Schemas überschrieben.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
    
  7. Setzen Sie die Ranger-Berechtigungen zurück.

    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-DB-Host in den folgenden Dateien mit den folgenden Attributen in einen neuen Datenbankhostnamen:

    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