En esta página, se muestra cómo crear una copia de seguridad y restablecer un esquema de Ranger en Dataproc con clústeres de Ranger.
Antes de comenzar
Crea un bucket si es necesario. Debes tener acceso a un bucket de Cloud Storage, que usarás para almacenar y restablecer un esquema de Ranger.
Sigue estos pasos para crear un bucket:
- En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.
- Haga clic en Crear bucket.
- En la página Crear un bucket, ingresa la información de tu bucket. Para ir al paso siguiente, haz clic en Continuar.
- En Nombre de tu bucket, ingresa un nombre que cumpla con los requisitos de nomenclatura de buckets.
-
En Elige dónde almacenar tus datos, haz lo siguiente:
- Selecciona una opción de Tipo de ubicación.
- Selecciona una opción de Ubicación.
- Para Elegir una clase de almacenamiento predeterminada para tus datos, selecciona una clase de almacenamiento.
- En Elige cómo controlar el acceso a los objetos, selecciona una opción de Control de acceso.
- Para la Configuración avanzada (opcional), especifica un método de encriptación, una política de retención o etiquetas de bucket.
- Haga clic en Crear.
Crea una copia de seguridad de un esquema de Ranger
Usa SSH para conectarte al nodo principal de Dataproc del clúster con el esquema de Ranger. Ejecuta los comandos de esta sección en la sesión de la terminal SSH que se ejecuta en el nodo principal.
Configurar variables de entorno
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
Reemplaza lo siguiente:
MySQL password: Puedes abrir
/etc/mysql/my.cnf
en el nodo principal del clúster para copiar la contraseña de MySQL.bucket name: Es el nombre del bucket de Cloud Storage que se usará para almacenar el esquema de Ranger.
schema filename: Especifica un nombre de archivo, sin la extensión de nombre de archivo
.sql
. El esquema de Ranger se guarda en este archivo en el nodo principal y, luego, en bucket name, en Cloud Storage .
Detener los servicios de Hive
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
Impide los cambios en las tablas de esquema de 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;
Guarda el esquema de Ranger en un archivo
.sql
.mysqldump -u root -p${MYSQL_PASSWORD} ranger > ${SCHEMA_FILE}.sql
Restablece los privilegios de guardabosques.
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;
Reinicia los servicios de Hive and 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
Copiar el esquema de Ranger en Cloud Storage
gsutil cp ${SCHEMA_FILE}.sql gs://${BUCKET_NAME}
Restablece un esquema de Ranger
Usa SSH para conectarte al nodo principal de Dataproc del clúster en el que restablecerás su esquema. Ejecuta los comandos de esta sección en la sesión de la terminal SSH que se ejecuta en el nodo principal.
Configurar variables de entorno
BUCKET_NAME=bucket name \ MYSQL_PASSWORD=MySQL password SCHEMA_FILE=schema filename
Reemplaza lo siguiente:
MySQL password: Puedes abrir
/etc/mysql/my.cnf
en el nodo principal del clúster para copiar la contraseña de MySQL.bucket name: Es el nombre del bucket de Cloud Storage que contiene el esquema de Ranger guardado.
schema filename: Es el nombre del nombre de archivo del esquema de Ranger, sin la extensión de nombre de archivo
.sql
, guardado en bucket name en Cloud Storage.
Detener los servicios de Hive
sudo systemctl stop hive-metastore.service sudo systemctl stop hive-server2.service
Impide los cambios en las tablas de esquema de 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;
Copia el archivo
.sql
del esquema de Ranger en Cloud Storage en el nodo principal del clúster.gsutil cp ${BUCKET_NAME}/${SCHEMA_FILE}.sql .
Restablece el esquema de Ranger. En este paso, se reemplaza el contenido del esquema de Ranger existente.
mysqldump -u root -p${MYSQL_PASSWORD} ranger < ${SCHEMA_FILE}.sql
Restablece los privilegios de guardabosques.
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;
Se actualizaron los archivos de configuración de Ranger. Cambia el host de la base de datos de Ranger a un nombre de host de base de datos nuevo en los siguientes archivos con las siguientes propiedades:
File Propiedad ranger-hdfs-security.xml
ranger.plugin.hdfs.policy.rest.url
ranger-yarn-security.xml
ranger.plugin.yarn.policy.rest.url
Reinicia los servicios de Hive and 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