Fazer backup e restaurar um esquema do Ranger

Esta página mostra como fazer backup e restaurar um esquema do Ranger em 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 você vai usar para armazenar e restaurar um esquema do Ranger.

    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 do Ranger

  1. Use SSH para se conectar para o 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 cluster nó mestre para copiar a senha do MySQL.

    • bucket name: o nome do bucket do Cloud Storage que será usar para armazenar o esquema do Ranger.

    • schema filename: especifica um nome de arquivo. sem a extensão de nome de arquivo .sql. O esquema de Ranger foi salvo a esse arquivo no nó mestre e, em seguida, salva 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. Reinicie 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.

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

Restaurar um esquema do Ranger

  1. Use SSH para se conectar nó mestre do Dataproc do cluster em que você vai restaurar 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 cluster nó mestre 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 esquema de Ranger nome do arquivo sem a extensão .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 .sql do esquema do Ranger no Cloud Storage para o cluster nó mestre.

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

    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. Atualize os arquivos de configuração do Ranger. Mudar o host do banco de dados do Ranger para um novo nome do 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. Reinicie 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