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 |
|
|
0.94.7 |
3.0-3.0.4 |
|
|
0.92 |
2.2 e posterior |
|
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 |
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-version3.3
\ --applications Name=Hue
Name=Hive
Name=Pig
Name=HBase
\ --use-default-roles --ec2-attributes KeyName=myKey
\ --instance-typec1.xlarge
--instance-count3
--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 --
argumento, onde daemon
-optsdaemon
é substituído pelo nome do daemon a ser configurado.
Configurar HBase daemons
O Amazon EMR fornece uma ação de bootstrap,s3://
, que você pode usar para alterar a configuração de HBase daemons, em que region
.elasticmapreduce/bootstrap-actions/configure-hbase-daemonsregion
é 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
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=Hue
Name=Hive
Name=Pig
Name=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 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://
como, por exemplo, em que região region
.elasticmapreduce/bootstrap-actions/configure-hbaseregion
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
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 emyKey
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-version3.3
\ --applications Name=Hue
Name=Hive
Name=Pig
Name=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 HBase site 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ó 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 manterhbase-site.xml
. -
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. -
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 eamzn-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-version3.3
\ --applications Name=Hue
Name=Hive
Name=Pig
Name=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 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
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 Configuração de software, para Aplicativos adicionais, escolha Configurar HBasee adicionar.
-
Na caixa de diálogo Add Application (Adicionar aplicativo), marque Restore From Backup (Restaurar a partir do backup).
-
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/
. -
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 HBase dados usando o console
-
Na seção Configuração de software, para Aplicativos adicionais, escolha Configurar HBasee 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 HBase cluster 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, 2013-09-26T20:00Z, define a hora de início como 26 de setembro de 2013 às 8 p.m. UTC. -
Escolha Adicionar.
-
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-version3.3
\ --applications Name=Hue
Name=Hive
Name=Pig
Name=HBase
Name=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.