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á.
Detalhes da aplicação HBase para versões anteriores da AMI do Amazon EMR
Versões compatíveis com o HBase
| Versão do HBase | AMI version | AWS CLI parâmetros de configuração | Detalhes da versão do HBase |
|---|---|---|---|
| 0.94.18 |
3.1.0 e posterior |
|
|
| 0.94.7 |
3.0-3.0.4 |
|
|
| 0.92 |
2.2 e posterior |
|
Pré-requisitos de clusters do HBase
Um cluster criado usando as versões 2.x e 3.x da AMI do Amazon EMR deve atender aos requisitos a seguir para o HBase.
-
O AWS CLI (opcional) — Para interagir com o 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 mestre HBase e o Zookeeper, enquanto os nós de tarefa executam os servidores da região do HBase. Para o melhor desempenho, os clusters do HBase devem ser executados em pelo menos duas instâncias do EC2, mas você pode executar o HBase em um único nó para fins de avaliação.
-
Long-running Cluster—O HBase só é executado em clusters de longa execução. Por padrão, a CLI e o console do Amazon EMR criam clusters de execução prolongada.
-
Um par de chaves do Amazon EC2 definido (recomendado): para usar o protocolo de rede Secure Shell (SSH) para conectar-se ao nó principal e executar comandos de shell do HBase, você deve usar um par de chaves do Amazon EC2 ao criar o cluster.
-
As versões corretas da AMI e do Hadoop — No momento, clusters HBase apenas têm suporte no Hadoop 20.205 ou versão posterior.
-
Ganglia (opcionais) — Para monitorar métricas de desempenho do HBase, instale o Ganglia quando você 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.
Criar um cluster com o HBase
A tabela a seguir lista as opções que estão disponíveis ao ser usado o console para criar um cluster com o 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 cluster do HBase 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 do 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 /minutos entre os backups agendados. |
| Backup location (Localização do backup) | O URI do Amazon S3 em que os backups são armazenados. O local de backup para cada cluster HBase 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 |
O exemplo de AWS CLI comando a seguir inicia um cluster com o 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-version3.3\ --applications Name=HueName=HiveName=PigName=HBase\ --use-default-roles --ec2-attributes KeyName=myKey\ --instance-typec1.xlarge--instance-count3--termination-protected
Uma vez estabelecida a conexão entre os clusters Hive e HBase (conforme mostrado no procedimento anterior), você pode acessar os dados armazenados no cluster HBase, 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 tabela do HBase chamada de inputTable. Você pode fazer referência a inputTable em instruções do Hive para consultar e modificar dados armazenados no cluster HBase.
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 ;
Personalizar a configuração do HBase
Embora as configurações padrão devam funcionar para a maioria dos aplicativos, você tem a flexibilidade de modificar suas definições de configuração do HBase. 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 do heap e opções a serem transmitidas à Máquina Virtual Java (JVM) quando o daemon do HBase for iniciado. Você pode definir essas propriedades como argumentos na ação de bootstrap. Essa ação de bootstrap modifica o arquivo de configuraçãohome/hadoop//conf/hbase-user-env.sh no cluster HBase.
-
configure-hbase: define configurações específicas de local do HBase, como a porta à qual o mestre do HBase 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 uma por uma, 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çãohome/hadoop//conf/hbase-site.xml no cluster HBase.
nota
Esses scripts, como outras ações de bootstrap, podem ser executados somente quando o cluster é criado. Você não pode usá-los para alterar a configuração de um cluster HBase atualmente em execução.
Ao executar as ações de bootstrap configure-hbase ou configure-hbase-daemons, os valores especificados substituem os valores padrão. Todos os valores não explicitamente definidos recebem os valores padrão.
Configurar o 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 o 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 -- argumento, onde daemon-optsdaemon é substituído pelo nome do daemon a ser configurado.
Configurar daemons do HBase
O Amazon EMR fornece uma ação de bootstraps3://, que você pode usar para alterar a configuração dos daemons do HBase, onde region.elasticmapreduce/bootstrap-actions/configure-hbase-daemonsregion é a região na qual você está lançando seu cluster HBase.
Para configurar daemons do HBase usando o AWS CLI, adicione a ação configure-hbase-daemons bootstrap ao iniciar o cluster para configurar um ou mais daemons do HBase. É possível definir as seguintes propriedades.
| Propriedade | Description |
|---|---|
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
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-version3.3\ --applications Name=HueName=HiveName=PigName=HBase\ --use-default-roles --ec2-attributes KeyName=myKey\ --instance-typec1.xlarge--instance-count3--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 local do HBase
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 um por um, 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 um por um é útil se você só precisa definir algumas definições de configuração. 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 prefixar o nome do bucket do Amazon S3 com um prefixo de região, comos3://, onde region.elasticmapreduce/bootstrap-actions/configure-hbaseregion é a região na qual você está lançando seu cluster HBase.
Essa ação de bootstrap modifica o arquivo de configuração /home/hadoop/conf/hbase-site.xml no cluster HBase. A ação de bootstrap pode ser executada somente quando o cluster HBase é executado.
Para obter mais informações sobre as configurações de local do HBase que você pode definir, consulte Configuração padrão
Defina a ação de bootstrap configure-hbase ao executar o cluster HBase e especifique os valores em hbase-site.xml a serem alterados.
Para especificar configurações individuais do site do HBase usando o AWS CLI
-
Para alterar a
hbase.hregion.max.filesizeconfiguração, digite o comando a seguir emyKeysubstitua pelo nome do seu par de chaves do Amazon EC2.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-version3.3\ --applications Name=HueName=HiveName=PigName=HBase\ --use-default-roles --ec2-attributes KeyName=myKey\ --instance-typec1.xlarge--instance-count3--termination-protected \ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["-s","hbase.hregion.max.filesize=52428800"]
Para especificar as configurações do site do HBase com um arquivo XML usando o AWS CLI
-
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ó principal do HBase do Amazon EMR em/home/hadoop/conf/hbase-site.xmle 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 manterhbase-site.xml. -
Carregue seu arquivo
hbase-site.xmlpersonalizado em um bucket do Amazon S3. Ele deve ter permissões definidas para que a AWS conta que inicia o cluster possa acessar o arquivo. Se a AWS conta que está lançando o cluster também possuir o bucket Amazon S3, ela terá acesso. -
Defina a ação de bootstrap configure-hbase ao executar o cluster HBase e inclua a localização do seu arquivo
hbase-site.xmlpersonalizado. O exemplo a seguir define os valores de configuração de local do HBase como os especificados no arquivos3://amzn-s3-demo-bucket/my-hbase-site.xml. Digite o comando a seguir,myKeysubstitua pelo nome do seu par de chaves do EC2 eamzn-s3-demo-bucketsubstitua pelo nome do seu 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-version3.3\ --applications Name=HueName=HiveName=PigName=HBase\ --use-default-roles --ec2-attributes KeyName=myKey\ --instance-typec1.xlarge--instance-count3--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 operação de HBase, cada par de chave/valor deverá ser precedido por uma opção
-s, conforme mostrado no exemplo a seguir:--bootstrap-actionss3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["-s","zookeeper.session.timeout=60000"]
Com o proxy definido e a conexão SSH aberta, você pode visualizar a interface do usuário do HBase abrindo uma janela do navegador com http://master-public-dns-name: 60010/master -status, onde master-public-dns-name está o endereço DNS público do nó principal no cluster do HBase.
Você pode visualizar os logs do HBase atuais usando o SSH para conectar-se ao nó principal e navegando até o diretório mnt/var/log/hbase. 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 do HBase
O Amazon EMR fornece a capacidade de fazer backup dos dados do HBase para o Amazon S3 manualmente ou em uma programação automatizada. Você pode executar backups completos e incrementais. Quando tiver uma versão de backup dos dados do HBase, você poderá restaurar essa versão para um cluster HBase. A restauração pode ser feita para um cluster HBase em execução, ou é possível executar um novo cluster pré-populado com os dados de backup.
Durante o processo de backup, o HBase continua a executar 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, você precisa considerar que o HBase distribui operações de gravação por todos os nós do 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 cluster HBase (enviadas para um nó que já foi sondado) podem não estar no arquivamento de backup, enquanto gravações posteriores (enviadas para um nó antes da sondagem) estão incluídas.
Se um backup consistente for necessário, você deverá pausar as gravações no 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 o backup dos dados do HBase, 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 todos os backups incrementais futuros façam referência ao cluster HBase correto.
Quando 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 dados do HBase. 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 de backup do HBase é usado S3DistCp 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 do HBase usando o console
O console fornece a capacidade de executar um novo cluster e populá-lo com dados de um backup anterior do HBase. Ele também oferece a capacidade de agendar backups incrementais periódicos de dados do HBase. 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 popular um novo cluster com dados do HBase arquivados usando o console
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.
-
Selecione Criar cluster.
-
Na seção Software Configuration (Configuração do software), para Additional Applications (Aplicativos adicionais), escolha HBase e Configure and add (Configurar e adicionar).
-
Na caixa de diálogo Add Application (Adicionar aplicativo), marque Restore From Backup (Restaurar a partir do backup).
-
Para Backup Location (Local de backup), especifique o local de backup no qual você deseja carregar no novo cluster do HBase. Este deve ser um URL do Amazon S3; no formato
s3://amzn-s3-demo-bucket/backups/. -
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.
-
Escolha Add (Adicionar) e continue para criar o cluster com outras opções, conforme desejado.
Para agendar backups automatizados de dados do HBase usando o console
-
Na seção Software Configuration (Configuração do software), para Additional Applications (Aplicativos adicionais), escolha HBase e Configure and add (Configurar e adicionar).
-
Escolha Schedule Regular Backups (Programar backups regulares).
-
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.
-
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.
-
Especifique o local no Amazon S3 em que os backups devem ser armazenados. Cada cluster do HBase deve ser copiado para backup em um local separado no Amazon S3 para garantir que os backups incrementais sejam calculados corretamente.
-
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, 26/09/2013T20:00Z, define a hora de início para 26 de setembro de 2013 às 20h UTC. -
Escolha Adicionar.
-
Continue com a criação do cluster, com outras opções conforme desejado.
Monitore o HBase com CloudWatch
O Amazon EMR relata três métricas CloudWatch que você pode usar para monitorar seus backups do HBase. Essas métricas são enviadas CloudWatch em intervalos de cinco minutos e são fornecidas gratuitamente.
| Métrica | Description |
|---|---|
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 apenas é relatada para clusters HBase. Caso de uso: monitorar backups HBase 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 apenas é relatada para clusters HBase. Caso de uso: monitorar backups HBase Unidade: minutos |
HBaseTimeSinceLastSuccessfulBackup |
O número de minutos decorridos após o último backup HBase bem-sucedido iniciado no cluster. Essa métrica apenas é relatada para clusters HBase. Caso de uso: monitorar backups HBase Unidade: minutos |
Configurar o Ganglia para HBase
Você configura o Ganglia para o HBase usando a ação de bootstrap configure-hbase-for-ganglia. Essa ação de bootstrap configura o HBase para publicar métricas no Ganglia.
Você deve configurar o HBase e o Ganglia ao executar o cluster. 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 para o HBase, use a ação de bootstrap configure-hbase-for-ganglia, 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-version3.3\ --applications Name=HueName=HiveName=PigName=HBaseName=Ganglia\ --use-default-roles --ec2-attributes KeyName=myKey\ --instance-typec1.xlarge--instance-count3--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.