本页面介绍了如何在 Dataproc 使用 Ranger 集群上备份和恢复 Ranger 架构。
准备工作
根据需要创建存储桶。您必须有权访问一个 Cloud Storage 存储桶,该存储分区将用于存储和恢复 Ranger 架构。
要创建存储桶,请按以下步骤操作:
备份 Ranger 架构
使用 SSH 连接到具有 Ranger 架构的集群的 Dataproc 主节点。在主节点上运行的 SSH 终端会话中运行本部分的命令。
设置环境变量。
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
请替换以下内容:
MySQL password:您可以在集群主实例节点上打开
/etc/mysql/my.cnf
以复制 MySQL 密码。bucket name:用于存储 Ranger 架构的 Cloud Storage 存储桶的名称。
schema filename:指定文件名,不带
.sql
文件扩展名。Ranger 架构保存在主节点上的此文件中,然后保存在 Cloud Storage 的 bucket name 中。
停止 Hive 服务。
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
防止更改 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;
将 Ranger 架构保存到
.sql
文件。mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
重置 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;
重启 Hive 和 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
将 Ranger 架构复制到 Cloud Storage。
gsutil cp ${SCHEMA_FILE}.sql gs://${BUCKET_NAME}
恢复 Ranger 架构
使用 SSH 连接到要从中恢复集群架构的 Dataproc 主节点。在主节点上运行的 SSH 终端会话中运行本部分的命令。
设置环境变量。
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
请替换以下内容:
MySQL password:您可以在集群主实例节点上打开
/etc/mysql/my.cnf
以复制 MySQL 密码。bucket name:包含已保存 Ranger 架构的 Cloud Storage 存储桶的名称。
schema filename:Ranger 架构文件名(不带
.sql
文件扩展名),保存在 Cloud Storage 的 bucket name 中。
停止 Hive 服务。
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
防止更改 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;
将 Cloud Storage 中的 Ranger 架构
.sql
文件复制到集群主节点。gsutil cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
恢复 Ranger 架构。此步骤将覆盖现有 Ranger 架构的内容。
mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
重置 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;
更新 Ranger 配置文件。将以下文件中的 Ranger DB 主机更改为以下属性的新数据库主机名:
文件 属性 ranger-hdfs-security.xml
ranger.plugin.hdfs.policy.rest.url
ranger-yarn-security.xml
ranger.plugin.yarn.policy.rest.url
重启 Hive 和 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