Fazer backup e restaurar um esquema do Ranger

Esta página mostra 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 Google Cloud console do, 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:
        • Insira um nome globalmente exclusivo que atenda aos requisitos de nome de bucket.
        • Para adicionar um rótulo de bucket, expanda a seção Rótulos (), clique em Adicionar rótulo e especifique uma key e um value para o rótulo.
      2. Na seção Escolha onde armazenar seus dados, faça o seguinte:
        1. Selecione um tipo de local.
        2. Escolha um local em que os dados do bucket sejam 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 é exibido.

            • Para filtrar objetos a serem replicados por prefixo de nome de objeto, digite 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 essa 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 em que você quer reter objetos após a exclusão.
          • Para definir o Controle de versão de objetos, clique na caixa de seleção Controle de versão de objetos (para controle de versão), 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 conformidade) 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 para o período de armazenamento.
        • Para escolher como os dados dos objetos serão criptografados, expanda a Criptografia de dados seção () e selecione um Criptografia de dados método.
    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: é 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: especifique um nome de arquivo, sem a extensão de nome de arquivo .sql. O esquema do Ranger é salvo nesse arquivo no nó mestre e, em seguida, 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 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. 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: é 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 arquivo de esquema do Ranger, sem a .sqlextensão de arquivo, 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 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 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 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 de 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 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