Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Usando HBase instantâneos - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando HBase instantâneos

HBase usa uma funcionalidade de captura instantânea integrada para criar backups leves de tabelas. Em clusters EMR, esses backups podem ser exportados para o Amazon S3 usando o EMRFS. Você pode criar um instantâneo no nó primário usando o HBase shell. Este tópico mostra como executar esses comandos interativamente com o shell ou por meio de uma etapa usando command-runner.jar o AWS CLI ou AWS SDK for Java. Para obter mais informações sobre outros tipos de HBase backups, consulte HBase backup na HBase documentação.

Criar um snapshot usando uma tabela

hbase snapshot create -n snapshotName -t tableName

Usando o command-runner.jar a partir do AWS CLI:

aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps Name="HBase Shell Step",Jar="command-runner.jar",\ Args=[ "hbase", "snapshot", "create","-n","snapshotName","-t","tableName"]

AWS SDK for Java

HadoopJarStepConfig hbaseSnapshotConf = new HadoopJarStepConfig() .withJar("command-runner.jar") .withArgs("hbase","snapshot","create","-n","snapshotName","-t","tableName");
nota

Se o nome do snapshot não for exclusivo, a operação de criação falhará com um código de retorno -1 ou 255, mas talvez você não veja uma mensagem de erro afirmando o que deu errado. Para usar o mesmo nome de snapshot, exclua-o e recrie-lo em seguida.

Excluir um snapshot

hbase shell >> delete_snapshot 'snapshotName'

Exibir informações do snapshot

hbase snapshot info -snapshot snapshotName

Exportar um snapshot para o Amazon S3

Importante

Se você não especificar um -mappers valor ao exportar um instantâneo, HBase usa um cálculo arbitrário para determinar o número de mapeadores. Esse valor pode ser muito grande, dependendo do tamanho da tabela, o que afeta negativamente os trabalhos em execução durante a exportação. Por esse motivo, recomendamos que você especifique o parâmetro -mappers, o parâmetro -bandwidth (que indica o consumo de largura de banda em megabytes por segundo) ou ambos para limitar os recursos de cluster usados pela operação de exportação. Como alternativa, você pode executar a operação de exportação de snapshot durante um período de baixa utilização.

hbase snapshot export -snapshot snapshotName \ -copy-to s3://amzn-s3-demo-bucket/folder -mappers 2

Usando command-runner.jar a partir do AWS CLI:

aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps Name="HBase Shell Step",Jar="command-runner.jar",\ Args=[ "hbase", "snapshot", "export","-snapshot","snapshotName","-copy-to","s3://amzn-s3-demo-bucket/folder","-mappers","2","-bandwidth","50"]

AWS SDK for Java:

HadoopJarStepConfig hbaseImportSnapshotConf = new HadoopJarStepConfig() .withJar("command-runner.jar") .withArgs("hbase","snapshot","export", "-snapshot","snapshotName","-copy-to", "s3://bucketName/folder", "-mappers","2","-bandwidth","50");

Importar um snapshot do Amazon S3

Embora seja uma importação, a HBase opção usada aqui ainda éexport.

sudo -u hbase hbase snapshot export \ -D hbase.rootdir=s3://amzn-s3-demo-bucket/folder \ -snapshot snapshotName \ -copy-to hdfs://masterPublicDNSName:8020/user/hbase \ -mappers 2

Usando command-runner.jar a partir do AWS CLI:

aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps Name="HBase Shell Step",Jar="command-runner.jar", \ Args=["sudo","-u","hbase","hbase snapshot export","-snapshot","snapshotName", \ "-D","hbase.rootdir=s3://amzn-s3-demo-bucket/folder", \ "-copy-to","hdfs://masterPublicDNSName:8020/user/hbase","-mappers","2","-chmod","700"]

AWS SDK for Java:

HadoopJarStepConfig hbaseImportSnapshotConf = new HadoopJarStepConfig() .withJar("command-runner.jar") .withArgs("sudo","-u","hbase","hbase","snapshot","export", "-D","hbase.rootdir=s3://path/to/snapshot", "-snapshot","snapshotName","-copy-to", "hdfs://masterPublicDNSName:8020/user/hbase", "-mappers","2","-chuser","hbase");

Restaurar uma tabela a partir de instantâneos dentro do shell HBase

hbase shell >> disable tableName >> restore_snapshot snapshotName >> enable tableName

HBase atualmente não oferece suporte a todos os comandos de snapshot encontrados no HBase shell. Por exemplo, não há opção de HBase linha de comando para restaurar um snapshot, então você deve restaurá-lo em um shell. Isso significa que command-runner.jar deve executar um comando Bash.

nota

Como o comando usado aqui é echo, é possível que seu comando shell ainda falhe, mesmo que o comando executado pelo Amazon EMR retorne um código de saída 0. Verifique os logs de etapas se você optar por executar um comando shell como um etapa.

echo 'disable tableName; \ restore_snapshot snapshotName; \ enable tableName' | hbase shell

Veja a seguir a etapa usando a AWS CLI. Primeiro, crie o seguinte arquivo snapshot.json:

[ { "Name": "restore", "Args": ["bash", "-c", "echo $'disable \"tableName\"; restore_snapshot \"snapshotName\"; enable \"tableName\"' | hbase shell"], "Jar": "command-runner.jar", "ActionOnFailure": "CONTINUE", "Type": "CUSTOM_JAR" } ]
aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps file://./snapshot.json

AWS SDK for Java:

HadoopJarStepConfig hbaseRestoreSnapshotConf = new HadoopJarStepConfig() .withJar("command-runner.jar") .withArgs("bash","-c","echo $'disable \"tableName\"; restore_snapshot \"snapshotName\"; enable \"snapshotName\"' | hbase shell");
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.