1. Introducción

Este manual describe los procedimientos para generar copias de seguridad de HBase y restaurar la base de datos a partir de las copias de seguridad. Los procedimientos para hacer copias de seguridad de HBase se cubren en el manual de Apache HBase, y este documento destaca las particularidades necesarias para realizar copias de seguridad de HBase de los servidores GBDS.

2. Configuración

Los primeros pasos para realizar una copia de seguridad de la base de datos comienzan en la Sección 83.

En la sección 86, preste atención a las configuraciones, que son un requisito previo para el procedimiento.

Los procedimientos en la sección 86.2 deben ejecutarse a través de la página de administración de Ambari:

http://<ambari-server>:8080/#/main/services/HBASE/configs

Para configurar el entorno para la copia de seguridad, acceda a HBase a través de la página principal de Ambari, luego acceda a la pestaña Configs y al menú Advanced y realice la siguiente configuración:

  1. Ingrese al menú Advanced hbase-site y establezca el valor de la propiedad hbase.coprocessor.region.classes en org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint,org.apache.hadoop.hbase.backup.BackupObserver

  2. Ingrese al menú Custom hbase-site y, a través de la opción Add Property, agregue las siguientes propiedades:

    hbase.backup.enable

    Valor: true

    hbase.master.logcleaner.plugins

    Valor: org.apache.hadoop.hbase.backup.master.BackupLogCleaner

    hbase.procedure.master.classes

    Valor: org.apache.hadoop.hbase.backup.master.LogRollMasterProcedureManager

    hbase.procedure.regionserver.classes

    Valor: org.apache.hadoop.hbase.backup.regionserver.LogRollRegionServerProcedureManager

    hbase.master.hfilecleaner.plugins

    Valor: org.apache.hadoop.hbase.backup.BackupHFileCleaner

    hbase.regionserver.thread.compaction.small

    Valor: 3

3. Creación de copias de seguridad

La Sección 87.1 describe la creación del archivo de copia de seguridad, que se crea inicialmente dentro de HDFS y debe moverse posteriormente a una ubicación de almacenamiento fuera del volumen de HBase.

El siguiente comando se utiliza para crear un archivo de copia de seguridad, ya sea completo o incremental:

hbase backup create <type> hdfs://<NAME-NODE-SERVER>:8020/<HDFS BACKUP DIR> -t anomalies,people,transactions,uls,unresolvedlatent,quality,transactionkeys -w 3

Las siguientes variables deben cambiarse de acuerdo con su entorno antes de realizar el comando anterior:

  • type

    Esta variable define si la copia de seguridad que se está creando es full o incremental.

  • NAME-NODE-SERVER

    Esta variable se refiere al servidor Name-node dentro del entorno actual donde se creará la copia de seguridad. Lo mismo ocurre con la exportación y restauración de copias de seguridad.

  • HDFS BACKUP DIR

    Esta variable se refiere al directorio HDFS donde se almacenará el archivo de copia de seguridad.

  • -t

    Este token se refiere y debe ir seguido de las tablas de HBase que se incluirán en el archivo de copia de seguridad. El ejemplo anterior contiene las tablas predeterminadas que deben incluirse en un archivo de copia de seguridad de GBDS.

  • -w

Este token se refiere y debe ser seguido por el número de trabajadores que se dedicarán a realizar la copia de seguridad.

Note

El número predeterminado de réplicas que se crearán para el archivo de copia de seguridad es 3. Para cambiar este valor, ejecute el siguiente comando:

hdfs dfs -setrep -R 2 hdfs://<NAME-NODE-SERVER>:8020/<HDFS BACKUP DIR>

El token HDFS BACKUP DIR debe ser la misma ruta utilizada como destino al crear el archivo de copia de seguridad.

El token -setrep se refiere al nuevo factor de replicación que se establece para el archivo de copia de seguridad, y es seguido por el token -R, que define la operación como recursiva (la misma operación se realizará para cualquier archivo o carpeta dentro de la ruta especificada), y el nuevo número de réplicas (en este caso, 2).

4. Exportación del archivo de copia de seguridad

Para exportar el archivo de copia de seguridad, se puede utilizar el siguiente comando para mover el archivo de copia de seguridad a la unidad local, de modo que se pueda mover a una fuente externa:

hdfs dfs -get hdfs://<NAME-NODE-SERVER>:8020/<HDFS> /<LOCAL-DRIVE-DIR>

Las variables para este comando son las mismas presentadas en Creación de copias de seguridad.

La variable LOCAL-DRIVE-DIR debe cambiarse según la ruta en la unidad local a donde se moverá el archivo de copia de seguridad.

5. Restauración de copias de seguridad

Sección 87.2 describe el procedimiento para restaurar el estado de la base de datos desde una copia de seguridad anterior:

Hay 2 opciones para restaurar un archivo de copia de seguridad: en el mismo entorno (sin exportar el archivo de copia de seguridad desde el HDFS) y en un entorno diferente (importando un archivo de copia de seguridad externo). Las siguientes secciones detallan cada caso.

5.1. Restauración en el mismo entorno

El siguiente comando se utiliza para restaurar una copia de seguridad dentro del mismo HDFS:

hbase backup history hbase restore hdfs://<NAME-NODE-SERVER>:8020/<HDFS BACKUP DIR> <backup-id> -o -t anomalies,people,transactions,uls,unresolvedlatent,quality,transactionkeys

En el comando anterior, el HDFS BACKUP DIR debe cambiarse según la ruta al archivo de copia de seguridad que se restaurará. El backup-id debe ser el identificador único de la copia de seguridad que se restaurará.

El token -o establece si los datos actuales deben ser sobrescritos por la restauración de la copia de seguridad y el token -t se refiere a las tablas de HBase que deben ser restauradas desde la copia de seguridad.

5.2. Restauración en un entorno diferente

Para restaurar la copia de seguridad en un entorno diferente, la copia de seguridad debe haber sido exportada previamente desde el entorno original a través del proceso descrito en la sección Exportación del archivo de copia de seguridad. Una vez que se mueve a la unidad local del nuevo entorno, debe ser colocado en el HDFS a través del siguiente comando:

hdfs dfs -put <LOCAL DRIVE BACKUP DIR> hdfs://<NAME-NODE-SERVER>:8020/<HDFS BACKUP DIR>

La variable LOCAL DRIVE BACKUP DIR debe ser la ruta dentro de la unidad local donde se encuentra el archivo de copia de seguridad y la variable HDFS BACKUP DIR debe ser la ruta dentro del HDFS local donde se almacenará la copia de seguridad. Una vez que se importa la copia de seguridad, el proceso de restauración es el mismo que se describe en la sección Restauración en el mismo entorno.