Fazer backup e restaurar um esquema do Ranger

Nesta página, mostramos como fazer backup e restaurar um esquema do Ranger no Serviço gerenciado para Apache Spark 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. No console do Google Cloud , acesse a página Buckets do Cloud Storage.

      Acessar buckets

    2. Clique em Criar.
    3. Na página Criar um bucket, insira as informações do seu bucket. Para ir à próxima etapa, clique em Continuar.
      1. Na seção Começar, faça o seguinte:
      2. Na seção Escolha onde armazenar seus dados, faça o seguinte:
        1. Selecione um tipo de local.
        2. Escolha um local onde os dados do bucket serão armazenados permanentemente no menu suspenso Tipo de local.
        3. Para configurar a replicação entre buckets, selecione Adicionar replicação entre buckets usando o Serviço de transferência do Cloud Storage e siga estas etapas:

          Configurar a replicação entre buckets

          1. No menu Bucket, selecione um bucket.
          2. Na seção Configurações de replicação, clique em Configurar para definir as configurações do job de replicação.

            O painel Configurar a replicação entre buckets aparece.

            • Para filtrar objetos a serem replicados por prefixo de nome de objeto, insira um prefixo com que você quer incluir ou excluir objetos e clique em Adicionar um prefixo.
            • Para definir uma classe de armazenamento para os objetos replicados, selecione uma classe de armazenamento no menu Classe de armazenamento. Se você pular esta etapa, os objetos replicados vão usar a classe de armazenamento do bucket de destino por padrão.
            • Clique em Concluído.
      3. Na seção Escolha como armazenar seus dados, faça o seguinte:
        1. Selecione uma classe de armazenamento padrão para o bucket ou Classe automática para gerenciamento automático da classe de armazenamento dos dados do bucket.
        2. Para ativar o namespace hierárquico, na seção Otimizar o armazenamento para cargas de trabalho com uso intensivo de dados, selecione Ativar namespace hierárquico neste bucket.
      4. Na seção Escolha como controlar o acesso a objetos, selecione se o bucket aplica ou não a prevenção de acesso público e selecione um método de controle de acesso para os objetos do bucket.
      5. Na seção Escolha como proteger os dados do objeto, faça o seguinte:
        • Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.
          • Para ativar a exclusão reversível, clique na caixa de seleção Política de exclusão reversível (para recuperação de dados) e especifique o número de dias que você quer reter os objetos após a exclusão.
          • Para definir o controle de versões de objetos, clique na caixa de seleção Controle de versões de objetos (para controle de versões) e especifique o número máximo de versões por objeto e o número de dias após os quais as versões não atuais expiram.
          • Para ativar a política de retenção em objetos e buckets, clique na caixa de seleção Retenção (para compliance) e faça o seguinte:
            • Para ativar o bloqueio de retenção de objetos, clique na caixa de seleção Ativar retenção de objetos.
            • Para ativar o Bloqueio de bucket, clique na caixa de seleção Definir política de retenção de bucket e escolha uma unidade e um período de armazenamento para a retenção.
        • Para escolher como os dados do objeto serão criptografados, expanda a seção Criptografia de dados () e selecione um método de Criptografia de dados.
    4. Clique em Criar.

Fazer backup de um esquema do Ranger

  1. Use SSH para se conectar ao nó mestre do Serviço Gerenciado para Apache Spark 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. Definir variáveis de ambiente.

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

    Substitua:

    • MySQL password: abra /etc/mysql/my.cnf no nó principal 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: especifique um nome de arquivo sem a extensão .sql. O esquema do Ranger é salvo nesse arquivo no nó principal e depois 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. Redefina 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 SSH para se conectar ao nó mestre do Serviço Gerenciado para Apache Spark 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. Definir variáveis de ambiente.

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

    Substitua:

    • MySQL password: abra /etc/mysql/my.cnf no nó principal 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 .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 de esquema do Ranger .sql no Cloud Storage para o nó principal do cluster.

    gcloud storage 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. Redefina 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 banco de dados 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