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:
Entre no menu Advanced hbase-site e defina o valor da propriedade
hbase.coprocessor.region.classes
paraorg.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint,org.apache.hadoop.hbase.backup.BackupObserver
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
ouincremental
.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.