Copia de seguridad y recuperación ante desastres de Hbase

Copia de seguridad y recuperación ante desastres de Hbase

I. Introducción

Este artículo presenta principalmente tres soluciones sencillas de copia de seguridad de recuperación de desastres comúnmente utilizadas por Hbase : CopyTable , Export / Import , Snapshot . Se introducen de la siguiente manera:

Dos, CopyTable

2.1 Introducción

CopyTable puede copiar datos de una tabla existente a una nueva tabla y tiene las siguientes características:

  • Funciones de soporte como intervalo de tiempo, intervalo de fila, cambio de nombre de tabla, cambio de nombre de familia de columna y si se deben copiar datos eliminados;
  • Antes de ejecutar el comando, debe crear una nueva tabla con la misma estructura que la tabla original;
  • CopyTableLa operación se lleva a cabo en base a la API de cliente HBase, es decir, utilizando la scanconsulta utilizada putpara escribir.

2.2 Formato de comando

Usage: CopyTable [general options] [--starttime=X] [--endtime=Y] [--new.name=NEW] [--peer.adr=ADR] <tablename>

2.3 Comandos comunes

  1. CopyTable en el mismo clúster
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=tableCopy  tableOrig
  1. CopyTable en diferentes clústeres
# 两表名称相同的情况
hbase org.apache.hadoop.hbase.mapreduce.CopyTable \
--peer.adr=dstClusterZK:2181:/hbase tableOrig

# 也可以指新的表名
hbase org.apache.hadoop.hbase.mapreduce.CopyTable \
--peer.adr=dstClusterZK:2181:/hbase \
--new.name=tableCopy tableOrig
  1. El siguiente es un ejemplo relativamente completo proporcionado por el funcionario, que especifica la hora de inicio y finalización, la dirección del clúster y solo copia la familia de columnas especificada:
hbase org.apache.hadoop.hbase.mapreduce.CopyTable \
--starttime=1265875194289 \
--endtime=1265878794289 \
--peer.adr=server1,server2,server3:2181:/hbase \
--families=myOldCf:myNewCf,cf2,cf3 TestTable

2.4 Más parámetros

Puedes --helpver más parámetros de soporte

# hbase org.apache.hadoop.hbase.mapreduce.CopyTable --help

Tres, Exportación / Importación

3.1 Introducción

  • ExportAdmite la exportación de datos a HDFS y la Importimportación de datos desde HDFS. ExportTambién admite la especificación de la hora de inicio y la hora de finalización de los datos exportados, por lo que se puede utilizar para la copia de seguridad incremental.
  • ExportExportar y CopyTablecomo dependiente de las scanoperaciones de HBase

3.2 Formato de comando

# Export
hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir> [<versions> [<starttime> [<endtime>]]]

# Inport
hbase org.apache.hadoop.hbase.mapreduce.Import <tablename> <inputdir>
  • El outputdirdirectorio exportado no se puede crear previamente, el programa se creará automáticamente. Una vez completada la exportación, la propiedad del archivo exportado será propiedad del usuario que ejecutó el comando de exportación.
  • De forma predeterminada, exporta solo Cellla última versión, independientemente del historial de versiones. Para exportar varias versiones, debe <versions>reemplazar el número de versión del parámetro deseado.

3.3 Comandos comunes

  1. Comando de exportación
hbase org.apache.hadoop.hbase.mapreduce.Export tableName  hdfs 路径/tableName.db
  1. Comando de importación
hbase org.apache.hadoop.hbase.mapreduce.Import tableName  hdfs 路径/tableName.db

四 、 Instantánea

4.1 Introducción

La función Instantánea de HBase le permite obtener una copia de una tabla (incluido el contenido y los metadatos) con muy poca sobrecarga de rendimiento. Porque las instantáneas almacenan solo metadatos de tabla e información de archivos H. Instantáneas de la cloneacción crea una nueva tabla a partir de la instantánea, la instantánea del restorecontenido de la operación volverá al nodo de la tabla de instantáneas. cloneY restorela operación no necesita copiar ningún dato, porque los HFiles subyacentes (tabla HBase que contiene archivos de datos) no se modifican, solo la tabla de información de metadatos modificada.

4.2 Configuración

La función de instantánea de HBase no está activada de forma predeterminada, si desea abrir una instantánea, debe hbase-site.xmlagregar las siguientes entradas del archivo de configuración:

<property>
    <name>hbase.snapshot.enabled</name>
    <value>true</value>
</property>

4.3 Comandos comunes

Todos los comandos de instantáneas deben ejecutarse en la línea de comandos interactiva de Hbase Shell.

1. Toma una instantánea

# 拍摄快照
hbase> snapshot '表名', '快照名'

De forma predeterminada, la actualización de datos se realiza en la memoria antes de tomar una instantánea. Para asegurarse de que los datos en la memoria estén incluidos en la instantánea. Pero si no desea incluir los datos en la memoria, puede usar la SKIP_FLUSHopción para deshabilitar la actualización.

# 禁止内存刷新
hbase> snapshot  '表名', '快照名', {
    
    SKIP_FLUSH => true}

2. Listado de instantáneas

# 获取快照列表
hbase> list_snapshots

3. Eliminación de instantáneas

# 删除快照
hbase> delete_snapshot '快照名'

4. Clonar una tabla a partir de una instantánea

# 从现有的快照创建一张新表
hbase>  clone_snapshot '快照名', '新表名'

5. Restaurar una instantánea

Restaure la tabla al nodo de instantánea, la operación de restauración debe deshabilitar la tabla primero

hbase> disable '表名'
hbase> restore_snapshot '快照名'

Cabe señalar aquí que si HBase está configurado con la replicación maestro-esclavo basada en replicación, dado que la replicación funciona en el nivel de registro y las instantáneas funcionan en el nivel del sistema de archivos, después de la restauración, la réplica y el servidor maestro estarán en un estado diferente. . En este momento, puede detener la sincronización primero y luego restablecer la sincronización después de que todos los servidores se hayan restaurado a un punto de datos consistente.

Referencia

  1. Copias de seguridad de Apache HBase en línea con CopyTable
  2. Guía de referencia de Apache HBase ™

Supongo que te gusta

Origin blog.csdn.net/weixin_44302240/article/details/112345949
Recomendado
Clasificación