HBase
 sql >> Base de Dados >  >> NoSQL >> HBase

Desempenho de HBase CDH5 (HBase1) vs CDH6 (HBase2)


Os clientes do HBase que fizerem upgrade do CDH 6 para o CDH 5 também receberão um upgrade do HBase passando do HBase1 para o HBase2. O desempenho é um aspecto importante que os clientes consideram. Medimos o desempenho de CDH 5 HBase1 versus CDH 6 HBase2 usando cargas de trabalho YCSB para entender as implicações de desempenho da atualização em clientes que fazem atualizações no local (sem alterações no hardware).

Sobre YCSB


Para nossos testes, usamos o Yahoo! Comparativo de serviço na nuvem (YCSB). YCSB é uma especificação de código aberto e um conjunto de programas para avaliar os recursos de recuperação e manutenção de programas de computador. É frequentemente usado para comparar o desempenho relativo dos sistemas de gerenciamento de banco de dados NoSQL.

O benchmark original foi desenvolvido por trabalhadores da divisão de pesquisa do Yahoo! que o lançou em 2010.

Mais informações sobre YCSB em https://github.com/brianfrankcooper/YCSB

Em nosso ambiente de teste, a escala de dados YCSB @1TB foi usada e as cargas de trabalho de execução incluíam cargas de trabalho padrão YCSB e cargas de trabalho personalizadas.

Cargas de trabalho de teste YCSB usadas:
  • Carga de trabalho A (Ler+Atualizar) :Exemplo de aplicação:armazenamento de sessão gravando ações recentes em uma sessão de usuário
    • 50% LER
    • 50% de ATUALIZAÇÃO
  • Carga de trabalho C (somente leitura) :Exemplo de aplicação:leia o cache do perfil do usuário, onde os perfis são construídos em outro lugar (por exemplo, Hadoop)
    • 100% LIDO
  • Carga de trabalho F (Ler+Modificar+Gravar) :Exemplo de aplicação:banco de dados do usuário, onde os registros do usuário são lidos e modificados pelo usuário ou para registrar a atividade do usuário
    • 50% LER
    • 25% de ATUALIZAÇÃO
    • 25% LER-MODIFICAR-GRAVAR
  • Somente atualização de carga de trabalho YCSB personalizada do Cloudera :Exemplo de aplicação:atualizações em massa
    • 100% de operações de ATUALIZAÇÃO

Mais informações sobre cargas de trabalho YCSB em https://github.com/brianfrankcooper/YCSB/wiki/Core-Workloads

Metodologia de teste


Estamos carregando o conjunto de dados YCSB com 1.000.000.000 de registros com cada registro de 1 KB de tamanho, criando um total de 1 TB de dados. Após o carregamento, esperamos que todas as operações de compactação terminem antes de iniciar o teste de carga de trabalho. Cada carga de trabalho testada foi executada 3 vezes por 15 minutos cada e a taxa de transferência* medido. O número médio é retirado de 3 testes para produzir o número final.

* Taxa de transferência (ops/s) =Nº de operações por segundo

Comparação de rendimento de CDH5 HBase1 vs CDH6 HBase2 usando YCSB

Taxa apenas de atualização personalizada


Atualizar somente . Casos de uso:atualizações em massa
CDH6 HBase2 taxa de transferência 50% maior que CDH5 HBase1


Taxa de transferência da carga de trabalho A do YCSB


Atualização pesada. Casos de uso:armazenamento de sessão, gravação de ações recentes
CDH6 HBase2 throughput 6% menor que CDH5 com HBase1


Taxa de transferência C da carga de trabalho YCSB


Somente leitura. Casos de uso:cache de perfil de usuário, cache de feed de notícias
CDH6 HBase2 throughput 5% menor que CDH5 HBase1


Taxa de transferência F da carga de trabalho YCSB


Ler-Modificar-Gravar. Casos de uso:armazenamento de atividades, bancos de dados de usuários
CDH6 HBase2 throughput muito próximo ao CDH5 HBase1

Resumo dos resultados do teste


Somente atualização personalizada carga de trabalho :  HBase2 CDH6 Update Only Carga de trabalho com desempenho 50% melhor do que HBase1 CDH5

Carga de trabalho YCSB Workload F: As operações e a taxa de transferência da carga de trabalho CDH6 YCSB Workload F foram muito semelhantes para CDH5 HBase1

Cargas de trabalho YCSB Workload A e YCSB Workload C: CDH6 YCSB Workload C Read Only e YCSB Workload A tiveram aproximadamente 5% menos operações e rendimento do que CDH5 HBase1

Versões CDH comparadas


Versão CDH6:Cloudera Enterprise 6.2

Versão CDH5:Cloudera Enterprise 5.16.2

Nome da Java VM:Java HotSpot(TM) 64-Bit Server VM

Versão Java:1.8.0_141

Ambiente de teste


Agrupamento usado: Cluster de 6 nós
Descrição do nó: Dell PowerEdge R430, 20c/40t Xenon e5-2630 v4 @ 2,2 GHz, 128 GB de RAM, discos de 4-2 TB

Configuração do teste

  • Versão YCSB:0.14.0
  • Versão de vinculação YCSB hbase20
  • Tabela YCSB @escala de 1 TB
  • configurações do WAL
    • Número de pipelines WAL por servidor por região (wal.regiongrouping.numgroups ) definido como 1
    • Multi-WAL:wal.provider definido como Múltiplo HDFS WAL
      • Observação -> Aqui, o WAL único usado como pipelines WAL é definido como 1
    • Asyncfs WAL:region.replica.replication.enabled definido como falso
  • Segurança: Nenhum configurado (sem Kerberos)
  • Servidores de região
    • Número de regiões na tabela YCSB 250, com cluster de 5+1 nós e aproximadamente 50 regiões por servidor de região
    • Tamanho médio do servidor da região 290 G
    • Dados por região ~ 6G
  • Apenas cache L1 com LruBlockCache usado com limite de tamanho de cache de 3 GB

Com base em nossos testes (resultados acima), os clientes que desejam atualizar do CDH 5.x para 6.x devem esperar um desempenho significativamente melhor para atualizações em massa e um desempenho bastante semelhante para outras cargas de trabalho em comparação com o que estão obtendo hoje.

Saiba mais sobre o Cloudera Operational DB aqui