O índice de localidade do bloco Hbase é sempre 0

2

Eu tenho uma configuração do Hbase (v 0.94.19 com Hadoop 1.2.1) com uma máquina mestre e dois servidores de região. Cada servidor de região tem um heap de 16 GB (cache de 6.4 GB, memstore de 4.0 GB) e um espaço em disco SSD de 1.6 TB (2 X 800 GB). Há apenas uma tabela com família de colunas única que é pré-dividida em 128 regiões (00 - ff). Key é uma cadeia hexadecimal de 32 bytes e os valores têm em média 800 a 900 bytes de comprimento. Taxa de atualização é de cerca de 3k - 5k itens por segundo, dos quais cerca de 20% são novas entradas. O fator de replicação do Hadoop é definido como 2. Resto das configurações do Hadoop e Hbase são padrão.

Eu executei um benchmark de leitura (não é realmente um benchmark, mas meu próprio código) nesta configuração que lê entradas aleatórias (mas válidas) através da interface do Java Hbase. Eu recebo uma média de 30 - 40 ms por leitura, o que é incomum na minha opinião. Além disso, esse tempo de leitura aumenta à medida que o número de arquivos de armazenamento aumenta em cada região e novamente diminui depois que faço uma grande compactação. O índice de localidade do bloco Hbase é sempre relatado como 0 por ambos os servidores da região, mesmo após uma grande compactação.

Minhas perguntas são: Alguém vê algum erro óbvio que estou cometendo aqui? Aumentar o número de discos em cada servidor de região (por exemplo, se eu alternar para 4 X 400 GB) ajuda a reduzir a latência de leitura? Há alguma otimização de SSD (por exemplo, superprovisionamento) que pode ajudar? Por fim, o que pode fazer com que o índice de localidade do bloco seja sempre 0?

Por favor, pergunte-me se você precisa de mais informações. Obrigado.

    
por tilmik 11.06.2014 / 06:39

0 respostas