Esegui il backup e il ripristino di uno schema Ranger

Questa pagina mostra come eseguire il backup e il ripristino di uno schema Ranger su Dataproc con cluster Ranger.

Prima di iniziare

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

    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.

Esegui il backup di uno schema Ranger

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

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

  3. Interrompi i servizi Hive.

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

  4. 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;
    
  5. Salva lo schema Ranger in un file .sql.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
    
  6. 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;
    
  7. 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
    
  8. Copia lo schema di Ranger in Cloud Storage.

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

Ripristinare uno schema di Ranger

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

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

  3. Interrompi i servizi Hive.

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

  4. 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;
    
  5. Copia il file dello schema di Ranger .sql in Cloud Storage nel nodo master del cluster.

    gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
    
  6. Ripristina lo schema di Ranger. Questo passaggio sovrascrive i contenuti dello schema Ranger esistente.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
    
  7. 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;
    
  8. 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
  9. 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