Esegui il backup e ripristina uno schema Ranger

Questa pagina mostra come eseguire il backup e il ripristino di uno schema Ranger su Dataproc con i 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 di questa sezione nella sessione del terminale SSH in esecuzione su il 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 nel cluster per copiare la password MySQL.

    • bucket name: il nome del bucket Cloud Storage da per archiviare lo schema Ranger.

    • schema filename: specifica un nome file, senza l'estensione del nome file .sql. Lo schema Ranger è stato salvato in questo file sul nodo master, quindi 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. Salva lo schema Ranger in un file .sql.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
    
  6. Reimposta i privilegi del 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 Ranger in Cloud Storage.

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

Ripristina uno schema Ranger

  1. Utilizza SSH per connetterti al nodo master Dataproc del cluster in cui ripristinerà 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 nel cluster per copiare la password MySQL.

    • bucket name: il nome del bucket Cloud Storage che contiene lo schema Ranger salvato.

    • schema filename: il nome dello schema Ranger nome file senza estensione .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. Impedisci le modifiche alle tabelle dello schema 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 Ranger. Questo passaggio sovrascrive i contenuti schema Ranger esistente.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
    
  7. Reimposta i privilegi del 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 impostandone uno nuovo nome 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