Eseguire il backup e ripristinare 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. Se necessario, crea un bucket. Devi avere accesso a un bucket Cloud Storage, che utilizzerai per archiviare e ripristinare uno schema Ranger.

    Per creare un bucket:

    1. Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.

      Vai alla pagina Bucket

    2. Fai clic su Crea bucket.
    3. Nella pagina Crea un bucket, inserisci le informazioni del bucket. Per andare al passaggio successivo, fai clic su Continua.
    4. Fai clic su Crea.

Backup di uno schema Ranger

  1. Utilizza SSH per connetterti al nodo master 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 MySQL.

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

    • schema filename: specifica un nome file, senza l'estensione del nome file .sql. Lo schema Ranger viene 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. 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. Salva lo schema di 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.

    gsutil cp ${SCHEMA_FILE}.sql gs://${BUCKET_NAME}
    

Ripristina uno schema Ranger

  1. Utilizza SSH per connetterti al nodo master di 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 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. 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 .sql dello schema Ranger in Cloud Storage nel nodo master del cluster.

    gsutil cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
    
  6. Ripristina lo schema Ranger. Questo passaggio sovrascrive i contenuti dello 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. Modifica l'host DB Ranger in un 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