Esta página mostra 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.
Para criar um bucket:
- In the Google Cloud console, go to the Cloud Storage Buckets page.
- Click Create bucket.
- On the Create a bucket page, enter your bucket information. To go to the next
step, click Continue.
- For Name your bucket, enter a name that meets the bucket naming requirements.
-
For Choose where to store your data, do the following:
- Select a Location type option.
- Select a Location option.
- For Choose a default storage class for your data, select a storage class.
- For Choose how to control access to objects, select an Access control option.
- For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
- Click Create.
Fazer backup de um esquema do Ranger
Use o SSH para se conectar ao nó mestre do Dataproc 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.
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 neste arquivo no nó mestre e, em seguida, em bucket name no Cloud Storage .
Interrompa os serviços do Hive.
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
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;
Salve o esquema do Ranger em um arquivo
.sql
.mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
Redefinir 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;
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
Copie o esquema do Ranger para o Cloud Storage.
gcloud storage cp ${SCHEMA_FILE}.sql gs://${BUCKET_NAME}
Restaurar um esquema do Ranger
Use o SSH para se conectar ao nó mestre do Dataproc 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.
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 salvo do Ranger.
schema filename: o nome do arquivo de esquema do Ranger, sem a extensão 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
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;
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 .
Restaure o esquema do Ranger. Esta etapa substitui o conteúdo do esquema Ranger atual.
mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
Redefinir 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;
Atualize os arquivos de configuração do Ranger. Mude o host do DB 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
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