1. Introdução

Esse manual descreve os processos para gerar backups da HBase e restaurar a database a partir desses backups. O processo para fazer backup da Hbase está descrito no Manual do Apache HBase , e esse documento ressalta as particularidades requeridas para realizar os backups do HBase do servidor GBDS.

2. Configurações

Os primeiros passos para realizar o backup do banco de dados começa em Seção 83.

Na seção 86, atente-se as configurações, que são pre-requisitos para o procedimento.

Os procedimentos na seção 86.2 devem ser executados através da página de administração do Ambari:

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

Para configurar o ambiente para o backup, acesse o HBase através da página principal do Ambari, então acesse a aba de Configs e o menu Advanced para fazer as seguintes configurações:

  1. Entre no menu Advanced hbase-site e defina o valor da propriedade hbase.coprocessor.region.classes para org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint,org.apache.hadoop.hbase.backup.BackupObserver

  2. Entre no menu Custom hbase-site e através da opção Add Property option, adicione as seguintes propriedades:

    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. Criando Backups

A Seção 87.1 descreve a criação do arquivo de backup, que é criado inicialmente dentro do HDFS e deve ser movido para um local fora das pastas do HBase.

O seguinte comando é usado para criar o arquivo de backup, sendo completo ou incremental:

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

As seguintes variáveis devem ser mudadas de acordo com seu ambiente antes de realizar o comando acima:

  • type

    Essa variável define se o backup que será criado será full ou incremental.

  • NAME-NODE-SERVER

    Essa variável refere-se ao Name-node server do atual ambiente onde o backup será criado. O mesmo ocorre com a exportação e restauração de backups.

  • HDFS BACKUP DIR

    Esta variável se refere ao diretório HDFS onde o arquivo de backup será armazenado.

  • -t

    Esse token se refere e deve ser seguido pelas tabelas do HBase que será incluída no arquivo de backup. O exemplo acima contém as tabelas padrão que devem ser incluidos no arquivo de backup do GBDS.

  • -w

    Esse token se refere e deve ser seguido pelo número de trabalhadores que irão ser dedicados na realização do backup.

Note

O número padrão de réplicas que serão criadas do arquivo de backup é 3. Para mudar esse valor, execute o seguinte comando:

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

O HDFS BACKUP DIR deve ter o mesmo caminho usado como destino ao criar o arquivo de backup.

O token -setrep ** se refere ao novo fator de replicação sendo definido para o arquivo de backup, e é seguido pelo token **-R, que define a operação como recursiva (a mesma operação será realizada para qualquer arquivo ou pasta dentro do caminho especificado), e o novo número de réplicas (neste caso, 2).

4. Exportando o Arquivo de Backup

Para exportar um arquivo de backup, o seguinte comando deve ser usado par amover o arquivo de backup para a unidade local, para então ser movido para uma fonte externa:

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

As variáveis desse comando são descritas em Criando Backups.

A variável LOCAL-DRIVE-DIR deve ser mudada de acordo com o caminho na unidade local onde o arquivo de backup será movido.

5. Restaurando Backups

A Seção 87.2 descreve o processo para restaurar o banco de dados para o estado antes do backup.

Há duas opções para restaurar um arquivo de backup: para o mesmo ambiente (sem exportar o arquivo de backup do HDFS) e para um ambiente diferente (importando um arquivo de backup externo). As seções seguintes detalham ambos casos.

5.1. Restaurando ao Mesmo Ambiente

The following command is used to restore a backup within the same 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

No comando acima, o HDFS BACKUP DIR deve ser mudado de acordo com o caminho para o arquivo de backup que será restaurado. O backup-id deve ser o identificador único do backup que será restaurado.

O token -o define se os dados atuais devem ser sobrescritos pela restauração e o token -t refere-se às tabelas HBase que devem ser restaurado a partir do backup.

5.2. Resutanrando para um Ambiente Diferente

Para restaurar o backup com um ambiente diferente, o backup deve ser previamente exportado do ambiente original de acordo com o processo descrito na seção Exportando o Arquivo de Backup. Uma vez que é movido a unidade local do novo ambiente, ele deve ser colocado no HDFS através do seguinte comando:

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

O LOCAL DRIVE BACKUP DIR deve ser o caminho dentro da unidade local onde o arquivo de backup está localizado e o HDFS BACKUP DIR deve ser o caminho dentro do HDFS local onde o backup será armazenado. Uma vez que o backup é importado, o processo de restauração é o mesmo descrito em Restaurando ao Mesmo Ambiente.