Fazer backup e restaurar um esquema do Ranger

Nesta página, mostramos 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.

    Siga as instruções abaixo para criar um bucket:

    1. No console do Cloud, acesse a página Buckets do Cloud Storage.

      Acessar a página "Buckets"

    2. Clique em Criar bucket.
    3. Na página Criar um bucket, insira as informações do seu bucket. Para ir à próxima etapa, clique em Continuar.
    4. Clique em Criar.

Fazer backup de um esquema Ranger

  1. Use SSH para se conectar ao nó mestre do Dataproc do cluster com o esquema do Ranger. Execute os comandos nesta 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 nesse arquivo no nó mestre e depois 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. Impedir alterações 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 privilégios de 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. Reiniciar os serviços 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. Copie o esquema do Ranger para o Cloud Storage.

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

Restaurar um esquema de Ranger

  1. Use SSH para se conectar ao nó mestre do Dataproc do cluster em que você restaura o esquema do cluster. Execute os comandos nesta 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 do Ranger salvo.

    • schema filename: o nome do nome do arquivo do esquema Ranger, sem a extensão de nome 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. Impedir alterações 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 de esquema .sql do Ranger no Cloud Storage para o nó mestre do cluster.

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

    mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
    
  7. Redefinir privilégios de 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. Atualização dos arquivos de configuração do Ranger. Altere o host do Ranger DB para um novo nome de host do banco de dados nos arquivos a seguir 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. Reiniciar os serviços 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