Fazer backup e restaurar um esquema do Ranger

Esta página mostra como fazer backup e restaurar um esquema do Ranger no Dataproc com clusters do Ranger.

Antes de começar

  1. Crie um bucket, se necessário. Você precisa ter acesso a um bucket do Cloud Storage, que será usado para armazenar e restaurar um esquema do Ranger.

    Para criar um 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.

Fazer backup de um esquema do Ranger

  1. Use o SSH para se conectar ao nó mestre do Dataproc do cluster com o esquema do Ranger. Execute os comandos desta seção na sessão do terminal SSH em execução no nó mestre.

  2. Defina variáveis de ambiente.

    BUCKET_NAME=bucket name \
      MYSQL_PASSWORD=MySQL password
      SCHEMA_FILE=schema filename
    

    Substitua:

    • MySQL password: é possível abrir /etc/mysql/my.cnf no nó mestre do cluster para copiar a senha do MySQL.

    • bucket name: o nome do bucket do Cloud Storage a ser usado para armazenar o esquema do Ranger.

    • schema filename: especifica um nome de arquivo, sem a extensão .sql. O esquema do Ranger é salvo neste arquivo no nó mestre e, em seguida, em bucket name no Cloud Storage .

  3. Interrompa os serviços do Hive.

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

  4. Impeça mudanças nas tabelas de esquema do 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. Salve o esquema do Ranger em um arquivo .sql.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
    
  6. Redefinir os privilégios do 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. Reinicie os serviços do Hive e do 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. Copie o esquema do Ranger para o Cloud Storage.

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

Restaurar um esquema do Ranger

  1. Use o SSH para se conectar ao nó mestre do Dataproc do cluster em que você vai restaurar o esquema do cluster. Execute os comandos desta seção na sessão do terminal SSH em execução no nó mestre.

  2. Defina variáveis de ambiente.

    BUCKET_NAME=bucket name \
      MYSQL_PASSWORD=MySQL password
      SCHEMA_FILE=schema filename
    

    Substitua:

    • MySQL password: é possível abrir /etc/mysql/my.cnf no nó mestre do cluster para copiar a senha do MySQL.

    • bucket name: o nome do bucket do Cloud Storage que contém o esquema salvo do Ranger.

    • schema filename: o nome do arquivo de esquema do Ranger, sem a extensão de arquivo .sql, salvo em bucket name no Cloud Storage.

  3. Interrompa os serviços do Hive.

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

  4. Impeça mudanças nas tabelas de esquema do 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. Copie o arquivo .sql do esquema do Ranger no Cloud Storage para o nó mestre do cluster.

    gcloud storage cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
    
  6. Restaure o esquema do Ranger. Esta etapa substitui o conteúdo do esquema Ranger atual.

    mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
    
  7. Redefinir os privilégios do 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. Atualize os arquivos de configuração do Ranger. Mude o host do DB do Ranger para um novo nome de host do banco de dados nos seguintes arquivos com as seguintes propriedades:

    Arquivo Propriedade
    ranger-hdfs-security.xml ranger.plugin.hdfs.policy.rest.url
    ranger-yarn-security.xml ranger.plugin.yarn.policy.rest.url
  9. Reinicie os serviços do Hive e do 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