HBase detalhes da aplicação para versões anteriores da AMI do Amazon EMR - 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á.

HBase detalhes da aplicação para versões anteriores da AMI do Amazon EMR

HBase Versões suportadas

HBase versão AMI version AWS CLI parâmetros de configuração HBase detalhes da versão
0.94.18 3.1.0 e posterior

--ami-version 3.1

--ami-version 3.2

--ami-version 3.3

--applications Name=HBase

  • Correções de bugs e melhorias.

0.94.7 3.0-3.0.4

--ami-version 3.0

--applications Name=HBase

0.92 2.2 e posterior

--ami-version 2.2 or later

--applications Name=HBase

HBase pré-requisitos de clusters

Um cluster criado usando as versões 2.x e 3.x da AMI do Amazon EMR deve atender aos requisitos a seguir para. HBase

  • O AWS CLI (opcional) — Para interagir HBase usando a linha de comando, baixe e instale a versão mais recente do AWS CLI. Para obter mais informações, consulte Instalar a AWS Command Line Interface no Guia do usuário da AWS Command Line Interface .

  • Pelo menos duas instâncias (opcionais): o nó principal do cluster executa o servidor HBase mestre e o Zookeeper, enquanto os nós de tarefa executam os servidores da HBase região. Para obter o melhor desempenho, HBase os clusters devem ser executados em pelo menos duas EC2 instâncias, mas você pode ser HBase executado em um único nó para fins de avaliação.

  • Cluster de longa execução: é executado HBase apenas em clusters de execução prolongada. Por padrão, a CLI e o console do Amazon EMR criam clusters de execução prolongada.

  • Um par de EC2 chaves da Amazon key pair definido (recomendado): para usar o protocolo de rede Secure Shell (SSH) para conectar-se ao nó principal e executar comandos de HBase shell, você deve usar um par de EC2 chaves da Amazon ao criar o cluster.

  • As versões corretas da AMI e do Hadoop — atualmente, os HBase clusters são suportados somente no Hadoop 20.205 ou posterior.

  • Ganglia (opcional) — Para monitorar as métricas de HBase desempenho, instale o Ganglia ao criar o cluster.

  • Um bucket do Amazon S3 para logs (opcional): os logs para HBase estão disponíveis no nó principal. Se você quiser que esses logs sejam copiados para o Amazon S3, especifique um bucket do S3 para receber arquivos de log quando criar o cluster.

Criação de um cluster com HBase

A tabela a seguir lista as opções que estão disponíveis ao ser usado o console para criar um cluster HBase usando uma versão da AMI do Amazon EMR.

Campo Ação
Restore from backup (Restauração de backup) Especifique se deseja pré-carregar o HBase cluster com dados armazenados no Amazon S3.
Backup location (Localização do backup) Especifique o URI no qual o backup para restauração reside no Amazon S3.
Backup version (Versão do backup) Opcionalmente, especifique o nome da versão do backup para uso em Backup Location (Localização do backup). Se você deixar esse campo em branco, o Amazon EMR usará o backup mais recente em Local de backup para preencher o novo cluster. HBase
Schedule Regular Backups (Agendar backups regulares) Especifique se deseja agendar backups incrementais automáticos. O primeiro backup é um backup completo para criar uma linha de base para futuros backups incrementais.
Consistent backup (Backup consistente) Especifica se os backups devem ser consistentes. Um backup consistente é aquele que pausa operações de gravação durante o estágio de backup inicial, a sincronização entre nós. Qualquer operações de gravação assim pausada é colocada em uma fila e retomada quando a sincronização é concluída.
Backup frequency (Frequência de backup) O número de days/hours/minutes backups programados.
Backup location (Localização do backup) O URI do Amazon S3 em que os backups são armazenados. O local de backup de cada HBase cluster deve ser diferente para garantir que os backups diferenciais permaneçam corretos.
Backup start time (Hora de início do backup) Especifique quando o primeiro backup deve ocorrer. Você pode definir isso como now, o que faz com que o primeiro backup comece assim que o cluster estiver em execução, ou inserir uma data e uma hora no formato ISO. Por exemplo, 2012-06-15T20:00Z define a hora de início como 15 de junho de 2012 às 8 p.m. UTC.

O AWS CLI comando de exemplo a seguir inicia um cluster com HBase e outros aplicativos:

nota

Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

aws emr create-cluster --name "Test cluster" --ami-version 3.3 \ --applications Name=Hue Name=Hive Name=Pig Name=HBase \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type c1.xlarge --instance-count 3 --termination-protected

Depois que a conexão entre o Hive e os HBase clusters for estabelecida (conforme mostrado no procedimento anterior), você poderá acessar os dados armazenados no HBase cluster criando uma tabela externa no Hive.

O exemplo a seguir, quando executado no prompt do Hive, cria uma tabela externa que faz referência a dados armazenados em uma HBase tabela chamadainputTable. Em seguida, você pode fazer referência inputTable nas instruções do Hive para consultar e modificar os dados armazenados no HBase cluster.

nota

O exemplo a seguir usa protobuf-java-2.4.0a.jar na AMI 2.3.3, mas você deve modificar o exemplo para corresponder à sua versão. Para verificar qual é a sua versão do Protocol Buffers JAR, execute o comando no prompt de comando do Hive: ! ls /home/hadoop/lib;.

add jar lib/emr-metrics-1.0.jar ; add jar lib/protobuf-java-2.4.0a.jar ; set hbase.zookeeper.quorum=ec2-107-21-163-157.compute-1.amazonaws.com ; create external table inputTable (key string, value string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties ("hbase.columns.mapping" = ":key,f1:col1") tblproperties ("hbase.table.name" = "t1"); select count(*) from inputTable ;

Personalizando a configuração HBase

Embora as configurações padrão devam funcionar com a maioria das aplicações, você tem a flexibilidade de modificar suas definições HBase de configuração. Para fazer isso, execute um dos dois scripts de ação de bootstrap:

  • configure-hbase-daemons— Configura propriedades dos daemons principal, regionserver e zookeeper. Essas propriedades incluem o tamanho da pilha e as opções a serem passadas para a Java Virtual Machine (JVM) quando o HBase daemon é iniciado. Você pode definir essas propriedades como argumentos na ação de bootstrap. Essa ação de bootstrap modifica o arquivo de configuração/home/hadoop/conf/hbase-user-env.sh no HBase cluster.

  • configure-hbase: define configurações HBase específicas de local, como a porta à qual o HBase mestre deve ser vinculado e o número máximo de vezes que o cliente de CLI deve tentar novamente uma ação. Você pode definir essas configurações one-by-one, como argumentos na ação de bootstrap, ou pode especificar o local de um arquivo de configuração XML no Amazon S3. Essa ação de bootstrap modifica o arquivo de configuração the /home/hadoop/conf/hbase -site.xml no HBase cluster.

nota

Esses scripts, como outras ações de bootstrap, só podem ser executados quando o cluster é criado; você não pode usá-los para alterar a configuração de um HBase cluster em execução no momento.

Quando você executa as ações configure-hbase ou configure-hbase-daemonsbootstrap, os valores especificados substituem os valores padrão. Todos os valores não explicitamente definidos recebem os valores padrão.

Configurar HBase com essas ações de bootstrap é semelhante ao uso de ações de bootstrap no Amazon EMR para definir configurações do Hadoop e propriedades de daemons do Hadoop. A diferença é que HBase não tem opções de memória por processo. Em vez disso, as opções de memória são definidas usando o --daemon-opts argumento, onde daemon é substituído pelo nome do daemon a ser configurado.

Configurar HBase daemons

O Amazon EMR fornece uma ação de bootstrap,s3://region.elasticmapreduce/bootstrap-actions/configure-hbase-daemons, que você pode usar para alterar a configuração de HBase daemons, em que region é a região em que o cluster do cluster. HBase

Para configurar HBase daemons usando o AWS CLI, adicione a ação configure-hbase-daemons bootstrap ao iniciar o cluster para configurar um ou mais daemons. HBase É possível definir as seguintes propriedades.

Propriedade Descrição
hbase-master-opts Opções que controlam como a JVM executa o daemon principal. Se definidas, estas substituirão as variáveis HBASE_MASTER_OPTS padrão.
regionserver-opts Opções que controlam como a JVM executa o daemon do servidor de regiões. Se definidas, estas substituirão as variáveis HBASE_REGIONSERVER_OPTS padrão.
zookeeper-opts Opções que controlam como a JVM executa o daemon zookeeper. Se definidas, estas substituirão as variáveis HBASE_ZOOKEEPER_OPTS padrão.

Para obter mais informações sobre essas opções, consulte hbase-env.sh na HBase documentação.

O exemplo a seguir mostra uma ação de bootstrap para configurar valores para zookeeper-opts e hbase-master-opts.

nota

Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

aws emr create-cluster --name "Test cluster" --ami-version 3.3 \ --applications Name=Hue Name=Hive Name=Pig Name=HBase \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type c1.xlarge --instance-count 3 --termination-protected \ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase-daemons,\ Args=["--hbase-zookeeper-opts=-Xmx1024m -XX:GCTimeRatio=19","--hbase-master-opts=-Xmx2048m","--hbase-regionserver-opts=-Xmx4096m"]

Definir configurações de HBase local

O Amazon EMR fornece uma ação de bootstrap,s3://elasticmapreduce/bootstrap-actions/configure-hbase, que você pode usar para alterar a configuração do. HBase Você pode definir valores de configuração one-by-one, como argumentos na ação de bootstrap, ou pode especificar o local de um arquivo de configuração XML no Amazon S3. Definir valores de configuração one-by-one é útil se você precisar definir apenas algumas configurações. Defini-los usando um arquivo XML é útil quando há muitas mudanças por fazer, ou se você deseja salvar as definições de configuração para reutilização.

nota

Você pode acrescentar ao nome do bucket do Amazon S3 um prefixo de região, s3://region.elasticmapreduce/bootstrap-actions/configure-hbase como, por exemplo, em que região region em que o cluster do Amazon S3. HBase

Essa ação de bootstrap modifica o arquivo /home/hadoop/conf/hbase-site.xml de configuração no HBase cluster. A ação bootstrap só pode ser executada quando o HBase cluster é iniciado.

Para obter mais informações sobre as configurações de HBase local que você pode definir, consulte Configuração padrão na HBase documentação.

Defina a ação de configure-hbase bootstrap ao iniciar o HBase cluster e especifique os valores a hbase-site.xml serem alterados.

Para especificar configurações individuais HBase do site usando o AWS CLI
  • Para alterar a hbase.hregion.max.filesize configuração, digite o comando a seguir e myKey substitua pelo nome do par de EC2 chaves da Amazon.

    nota

    Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

    aws emr create-cluster --name "Test cluster" --ami-version 3.3 \ --applications Name=Hue Name=Hive Name=Pig Name=HBase \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type c1.xlarge --instance-count 3 --termination-protected \ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["-s","hbase.hregion.max.filesize=52428800"]
Para especificar as configurações do HBase site com um arquivo XML usando o AWS CLI
  1. Crie uma versão personalizada de hbase-site.xml. Seu arquivo personalizado deve ser um XML válido. Para reduzir as probabilidades da ocorrência de erros, comece com a cópia padrão dehbase-site.xml, localizada no nó HBase principal do Amazon EMR em/home/hadoop/conf/hbase-site.xml, e edite uma cópia desse arquivo em vez de criar um arquivo do zero. Você pode dar um novo nome para o seu novo arquivo ou manter hbase-site.xml.

  2. Carregue seu arquivo hbase-site.xml personalizado em um bucket do Amazon S3. Ele deve ter permissões definidas para que a AWS conta da que inicia o cluster possa acessar o arquivo. Se a AWS conta da que iniciar o cluster também possuir o bucket do Amazon S3, ela terá acesso.

  3. Defina a ação de bootstrap configure-hbase ao iniciar o HBase cluster e inclua a localização do seu arquivo personalizado. hbase-site.xml O exemplo a seguir define os valores de configuração do HBase site para aqueles especificados no arquivos3://amzn-s3-demo-bucket/my-hbase-site.xml. Digite o comando a seguir, myKey substitua pelo nome do par de EC2 chaves e amzn-s3-demo-bucket substitua pelo nome do bucket do Amazon S3.

    nota

    Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

    aws emr create-cluster --name "Test cluster" --ami-version 3.3 \ --applications Name=Hue Name=Hive Name=Pig Name=HBase \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type c1.xlarge --instance-count 3 --termination-protected \ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["--site-config-file","s3://amzn-s3-demo-bucket/config.xml"]

    Se você especificar mais de uma opção para personalizar a HBase operação, deverá prefixar cada par de valores-chave com uma -s opção, conforme mostrado no exemplo a seguir:

    --bootstrap-actions s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["-s","zookeeper.session.timeout=60000"]

Com o proxy definido e a conexão SSH aberta, você pode exibir a HBase interface do usuário abrindo uma janela do navegador com http: //:60010/master-statusmaster-public-dns-name, em que é master-public-dns-name o endereço DNS público do nó principal no cluster. HBase

Você pode exibir os HBase logs atuais usando o SSH para se conectar ao nó principal e navegando até o mnt/var/log/hbase diretório. Esses logs não estão disponíveis depois que o cluster é encerrado, a menos que você habilite o registro em log no Amazon S3 quando o cluster for iniciado.

Fazer o backup e a restauração HBase

O Amazon EMR fornece a capacidade de fazer backup HBase dos dados para o Amazon S3 manualmente ou em uma programação automatizada. Você pode executar backups completos e incrementais. Depois de ter uma versão de backup dos HBase dados, você pode restaurar essa versão em um HBase cluster. Você pode restaurar em um HBase cluster que esteja em execução no momento ou iniciar um novo cluster pré-preenchido com dados de backup.

Durante o processo de backup, HBase continua executando comandos de gravação. Embora isso garanta que o cluster permanecerá disponível durante o backup, existe o risco de inconsistência entre os dados que estão sendo copiados para backup e quaisquer operações de gravação que estejam sendo executadas em paralelo. Para entender as inconsistências que podem surgir, é preciso considerar que HBase distribui as operações de gravação entre os nós em seu cluster. Se uma operação de gravação acontecer depois que um nó específico for sondado, esses dados não serão incluídos no arquivamento de backup. Você pode até descobrir que gravações anteriores no HBase cluster (enviadas para um nó que já foi pesquisado) podem não estar no arquivo de backup, enquanto gravações posteriores (enviadas para um nó antes de ser pesquisado) estão incluídas.

Se for necessário um backup consistente, você deverá pausar as gravações HBase durante a parte inicial do processo de backup, a sincronização entre os nós. Isso pode ser feito especificando o parâmetro --consistent ao solicitar um backup. Com esse parâmetro, as gravações durante esse período são enfileiradas e executadas logo após a conclusão da sincronização. Você também pode agendar backups recorrentes, que resolvem quaisquer inconsistências com o passar do tempo, conforme os dados perdidos em uma passagem são copiados para backup na passagem seguinte.

Ao fazer backup HBase dos dados, você deve especificar um diretório de backup diferente para cada cluster. Uma maneira fácil de fazer isso é usar o identificador de cluster como parte do caminho especificado para o diretório de backup. Por exemplo, .s3://amzn-s3-demo-bucket/backups/j-3AEXXXXXX16F2 Isso garante que qualquer backup incremental futuro faça referência ao HBase cluster correto.

Quando você estiver pronto para excluir arquivos de backup antigos que não são mais necessários, recomendamos que você primeiro faça um backup completo dos seus HBase dados. Isso garante que todos os dados sejam preservados e fornece uma base para futuros backups incrementais. Terminado o backup completo, você pode navegar até o local do backup e excluir manualmente os arquivos de backup antigos.

O processo HBase de backup usa o S3 DistCp para a operação de cópia, que tem certas limitações em relação ao espaço de armazenamento temporário de arquivos.

Fazer o backup e a restauração HBase usando o console

O console oferece a capacidade de iniciar um novo cluster e preenchê-lo com dados de um HBase backup anterior. Ele também oferece a capacidade de programar backups incrementais periódicos dos HBase dados. Funcionalidades adicionais de backup e restauração, como a capacidade de restaurar dados para um cluster já em execução, fazer backups manuais e agendar backups completos automatizados, estão disponíveis usando a CLI.

Para preencher um novo cluster com HBase dados arquivados usando o console
  1. Navegue até o novo console do Amazon EMR e selecione Alternar para o console antigo na navegação lateral. Para obter mais informações sobre o que esperar ao alternar para o console antigo, consulte Usar o console antigo.

  2. Selecione Criar cluster.

  3. Na seção Configuração de software, para Aplicativos adicionais, escolha Configurar HBasee adicionar.

  4. Na caixa de diálogo Add Application (Adicionar aplicativo), marque Restore From Backup (Restaurar a partir do backup).

  5. Em Local do Backup, especifique o local do backup a ser carregado no novo HBase cluster. Este deve ser um URL do Amazon S3; no formato s3://amzn-s3-demo-bucket/backups/.

  6. Para Backup Version (Versão de backup), você tem a opção de especificar o nome de uma versão de backup a ser carregada, definindo um valor. Se você não definir um valor para Versão de backup, o Amazon EMR carregará o backup mais recente no local especificado.

  7. Escolha Add (Adicionar) e continue para criar o cluster com outras opções, conforme desejado.

Para agendar backups automatizados de HBase dados usando o console
  1. Na seção Configuração de software, para Aplicativos adicionais, escolha Configurar HBasee adicionar.

  2. Escolha Schedule Regular Backups (Programar backups regulares).

  3. Especifica se os backups devem ser consistentes. Um backup consistente é aquele que pausa operações de gravação durante o estágio de backup inicial, a sincronização entre nós. Qualquer operação de gravação pausada é colocada em uma fila e retomada quando a sincronização é concluída.

  4. Defina com que frequência os backups devem ocorrer, inserindo um número para Backup Frequency (Frequência de backup) e escolhendo Days (Dias), Hours (Horas) ou Minutes (Minutos). O primeiro backup automatizado que é executado é um backup completo. Depois disso, o Amazon EMR salva backups incrementais, com base no horário que você especificar.

  5. Especifique o local no Amazon S3 em que os backups devem ser armazenados. Cada HBase cluster deve ser copiado para backup em um local separado no Amazon S3 para garantir que os backups incrementais sejam calculados corretamente.

  6. Especifique quando o primeiro backup deve ocorrer, definindo um valor para Backup Start Time (Hora de início do backup). Você pode definir isso como now, o que faz com que o primeiro backup comece assim que o cluster estiver em execução, ou inserir uma data e uma hora no formato ISO. Por exemplo, 2013-09-26T20:00Z, define a hora de início como 26 de setembro de 2013 às 8 p.m. UTC.

  7. Escolha Adicionar.

  8. Continue com a criação do cluster, com outras opções conforme desejado.

Monitor HBase com CloudWatch

O Amazon EMR informa três métricas CloudWatch que você pode usar para monitorar seus HBase backups. Essas métricas são enviadas CloudWatch em intervalos de cinco minutos e fornecidas sem custo.

Métrica Descrição
HBaseBackupFailed

Se o último backup falhou. É definido como 0 por padrão e atualizado para 1 se a tentativa de backup anterior falhou. Essa métrica é relatada somente para HBase clusters.

Caso de uso: monitorar HBase backups

Unidades: Contagem

HBaseMostRecentBackupDuration

O tempo que o backup anterior levou para ser concluído. Essa métrica é definida independentemente de o último backup ter sido bem-sucedido ou ter falhado. Enquanto o backup está sendo processado, essa métrica retorna o número de minutos desde o início do backup. Essa métrica é relatada somente para HBase clusters.

Caso de uso: monitorar HBase backups

Unidade: minutos

HBaseTimeSinceLastSuccessfulBackup

O número de minutos decorridos após o início do último HBase backup bem-sucedido em seu cluster. Essa métrica é relatada somente para HBase clusters.

Caso de uso: monitorar HBase backups

Unidade: minutos

Configurar o Ganglia para HBase

Você configura o Ganglia para HBase usar a ação configure-hbase-for-gangliabootstrap. Essa ação de bootstrap é configurada HBase para publicar métricas no Ganglia.

Você deve configurar o HBase Ganglia ao iniciar o cluster; os relatórios do Ganglia não podem ser adicionados a um cluster em execução.

O Ganglia também armazena arquivos de log no servidor em /mnt/var/log/ganglia/rrds. Se você tiver configurado o cluster para manter a persistência dos arquivos de log em um bucket do Amazon S3, os arquivos de log do Ganglia serão mantidos lá também.

Para iniciar um cluster com o Ganglia for HBase, use a ação configure-hbase-for-gangliabootstrap conforme mostrado no exemplo a seguir.

nota

Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

aws emr create-cluster --name "Test cluster" --ami-version 3.3 \ --applications Name=Hue Name=Hive Name=Pig Name=HBase Name=Ganglia \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type c1.xlarge --instance-count 3 --termination-protected \ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase-for-ganglia

Depois que o cluster é executado com o Ganglia configurado, você pode acessar os gráficos e relatórios do Ganglia usando a interface gráfica em execução no nó principal.