HBaseespecificações do aplicativo para AMI versões anteriores da 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á.

HBaseespecificações do aplicativo para AMI versões anteriores da Amazon EMR

Versões do HBase com suporte

HBaseversão AMIversão AWS CLI parâmetros de configuração HBasedetalhes 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

HBasepré-requisitos do cluster

Um cluster criado usando EMR AMI as versões 2.x e 3.x da Amazon deve atender aos seguintes requisitos 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 (opcional) — o nó principal do cluster executa o servidor HBase mestre e o Zookeeper, e os nós de tarefas 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 duração — HBase só é executado em clusters de longa duração. Por padrão, o EMR console CLI e a Amazon criam clusters de longa duração.

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

  • As versões corretas 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 registros (opcional) — Os registros 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.

Criar um cluster com o HBase

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

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 URI onde o backup a partir do qual a 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, a Amazon EMR usará o backup mais recente no Local de Backup para preencher o novo HBase cluster.
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 dias/horas/minutos entre os backups agendados.
Backup location (Localização do backup) O Amazon S3, URI onde 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 comonow, o que faz com que o primeiro backup seja iniciado assim que o cluster estiver em execução ou inserir uma data e hora no ISOformato. Por exemplo, 2012-06-15T 20:00 Z definiria o horário de início para 15 de junho de 2012 às 20:00. 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 a partir do prompt do Hive, cria uma tabela externa que faz referência aos 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 versão AMI 2.3.3, mas você deve modificar o exemplo para corresponder à sua versão. Para verificar qual versão dos buffers de protocolo JAR você tem, 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 para a maioria dos aplicativos, você tem a flexibilidade de modificá-las. HBase Para fazer isso, execute um dos dois scripts de ação de bootstrap:

  • configure-hbase-daemons— Configura as propriedades dos daemons master, 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 hbase-user-env /home/hadoop/conf/ .sh no cluster. HBase

  • configure-hbase — Define configurações HBase específicas do site, como a porta à qual o HBase mestre deve se vincular e o número máximo de vezes que o cliente cliente deve repetir uma ação. CLI Você pode defini-los one-by-one como argumentos na ação de bootstrap ou especificar a localização de um arquivo de XML configuração no Amazon S3. Essa ação de bootstrap modifica o arquivo de configuração /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 que está 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 é análogo ao uso de ações de bootstrap na Amazon para definir as configurações do Hadoop e as propriedades do EMR daemon 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

EMRA Amazon fornece uma ação de bootstrap,s3://region.elasticmapreduce/bootstrap-actions/configure-hbase-daemons, que você pode usar para alterar a configuração dos HBase daemons, onde region é a região na qual você está lançando seu HBase cluster.

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 o daemon principal JVM é executado. Se definidas, elas substituem as OPTS variáveis HBASE _ MASTER _ padrão.
regionserver-opts Opções que controlam como o daemon do servidor da região JVM é executado. Se definidas, elas substituem as OPTS variáveis HBASE _ REGIONSERVER _ padrão.
zookeeper-opts Opções que controlam como o JVM daemon do zookeeper é executado. Se definidas, elas substituem as OPTS variáveis HBASE _ ZOOKEEPER _ 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 as configurações do HBase site

EMRA Amazon fornece uma ação de bootstraps3://elasticmapreduce/bootstrap-actions/configure-hbase,, que você pode usar para alterar a configuração doHBase. Você pode definir valores de configuração one-by-one, como argumentos na ação bootstrap, ou você pode especificar a localização de um arquivo de XML configuração no Amazon S3. Definir valores de configuração one-by-one é útil se você precisar definir apenas algumas configurações. Configurá-los usando um XML arquivo é útil se você tiver muitas alterações a fazer ou se quiser salvar suas configurações para reutilização.

nota

Você pode prefixar o nome do bucket do Amazon S3 com um prefixo de região, como, onde s3://region.elasticmapreduce/bootstrap-actions/configure-hbase region é a região na qual você está lançando seu HBase cluster.

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 do HBase site 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 seguinte comando e substitua myKey com o nome do seu 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 XML arquivo usando o AWS CLI
  1. Crie uma versão personalizada de hbase-site.xml. Seu arquivo personalizado deve ser válidoXML. Para reduzir a chance de introduzir erros, comece com a cópia padrão dehbase-site.xml, localizada no nó EMR HBase principal da Amazon 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 que executa o cluster possa acessar o arquivo. Se a AWS conta que está lançando 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://mybucket/my-hbase-site.xml. Digite o seguinte comando, substitua myKey com o nome do seu EC2 key pair e substitua mybucket com o nome do seu bucket 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://mybucket/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 SSH conexão aberta, você pode visualizar a HBase interface do usuário abrindo uma janela do navegador com http://master-public-dns-name: 60010/master-status, onde master-public-dns-name é o DNS endereço público do nó principal no HBase cluster.

Você pode visualizar os HBase registros atuais usando SSH para se conectar ao nó principal e navegar 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.

Backup e restauração HBase

A Amazon EMR oferece a capacidade de fazer backup de seus HBase dados no Amazon S3, manualmente ou de forma 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://mybucket/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.

Faça backup e restaure 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 permite programar backups incrementais periódicos dos HBase dados. Funcionalidades adicionais de backup e restauração, como a capacidade de restaurar dados em um cluster já em execução, fazer backups manuais e agendar backups completos automatizados, estão disponíveis usando CLI o.

Para preencher um novo cluster com HBase dados arquivados usando o console
  1. Navegue até o novo EMR console da Amazon 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. Esse deve ser um Amazon S3 URL do formulário. s3://myawsbucket/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 a versão de backup, a Amazon EMR carrega 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 executado é um backup completo; depois disso, a Amazon EMR salva backups incrementais com base na programação especificada por você.

  5. Especifique o local no Amazon S3 em que os backups devem ser armazenados. O backup de cada HBase cluster deve ser feito 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 comonow, o que faz com que o primeiro backup seja iniciado assim que o cluster estiver em execução ou inserir uma data e hora no ISOformato. Por exemplo, 2013-09-26T 20:00 Z, define o horário de início para 26 de setembro de 2013 às 20:00. UTC

  7. Escolha Adicionar.

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

Monitor HBase com CloudWatch

A Amazon EMR relata 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 são fornecidas gratuitamente.

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 forHBase, 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.