Nesta página, mostramos como fazer backup e restaurar um esquema do Ranger no Dataproc com clusters do Ranger.
Antes de começar
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:
- No console do Cloud, acesse a página Buckets do Cloud Storage.
- Clique em Criar bucket.
- Na página Criar um bucket, insira as informações do seu bucket. Para ir à próxima
etapa, clique em Continuar.
- Em Nomear o bucket, insira um nome que atenda aos requisitos de nomenclatura de bucket.
-
Em Escolha um local para armazenar seus dados, faça o seguinte:
- Selecione uma opção de Tipo de local.
- Escolha uma opção de Local.
- Em Escolher uma classe de armazenamento padrão para seus dados, selecione uma classe de armazenamento.
- Em Escolha como controlar o acesso a objetos, selecione uma opção de Controle de acesso.
- Em Configurações avançadas (opcional), especifique um método de criptografia, uma política de retenção ou rótulos de bucket.
- Clique em Criar.
Fazer backup de um esquema de Ranger
Use SSH para se conectar ao nó mestre do Dataproc do cluster com o esquema do Ranger. Executar os comandos nesta seção da sessão do terminal SSH em execução no nó mestre.
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 salvo em bucket name no Cloud Storage .
Interrompa os serviços do Hive.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
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;
Salve o esquema do Ranger em um arquivo
.sql
.mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
Redefinir privilégios de guarda de documentos.
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;
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
Copie o esquema do Ranger para o Cloud Storage.
gsutil cp ${SCHEMA_FILE}.sql gs://${BUCKET_NAME}
Restaurar um esquema de Ranger
Use o SSH para se conectar ao nó mestre do Dataproc do cluster em que você vai restaurar o esquema do cluster. Executar os comandos nesta seção da sessão do terminal SSH em execução no nó mestre.
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 de arquivo do esquema do Ranger, sem a extensão de nome de arquivo
.sql
, salvo em bucket name no Cloud Storage.
Interrompa os serviços do Hive.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
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;
Copie o arquivo
.sql
do esquema do Ranger no Cloud Storage para o nó mestre do cluster.gsutil cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
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
Redefinir privilégios de guarda de documentos.
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;
Atualização dos arquivos de configuração do Ranger. Altere o host do banco de dados do Ranger para um novo nome do 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
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