Compactações em hbase
compactação
Conteúdo
compactações menores combinar um número configurável de HFiles menores em um hFile maior. Você pode ajustar o número de HFiles para compactar e a frequência de uma compactação menor. compactações menores são importantes porque sem eles, lendo uma linha específica pode exigir muitas leituras de disco e fazer com que o desempenho geral lento.
A figura, que ilustra como esse conceito funciona, pode ajudar a visualizar como a tabela a seguir pode ser persistido no HDFS.
Row Key | Coluna Família: {coluna Qualifier: Versão: Valor} |
---|---|
00001 | Nome do cliente: {&lsquo-FN&rsquo-: 1383859182496:&lsquo-John&rsquo-, &lsquo-LN&rsquo-: 1383859182858:&lsquo-Smith&rsquo-, &lsquo-MN&rsquo-: 1383859183001:&rsquo-Timothy&rsquo-, &lsquo-MN&rsquo-: 1383859182915:&rsquo-T&rsquo-} ContactInfo: {&lsquo-EA&rsquo-: 1383859183030:[email protected]&rsquo-, &rsquo-SA&rsquo-: 1383859183073:&rsquo-1 Hadoop Lane, NY 11111&rsquo-} |
00002 | Nome do cliente: {&lsquo-FN&rsquo-: 1383859183103:&lsquo-Jane&rsquo-, &lsquo-LN&rsquo-: 1383859183163:&lsquo-Doe&rsquo-, ContactInfo: { &rsquo-SA&rsquo-: 1383859185577:&rsquo-7 HBase Ave, CA 22222&rsquo-} |
Video: Is This What Quantum Mechanics Looks Like?
Observe como a família de colunas CustomerName foi escrito para o HDFS com duas ondas de MemStore e como os dados na família coluna ContactInfo foi mantidas no disco com apenas um rubor MemStore. Este exemplo é hipotético, mas é um cenário provável, dependendo do calendário das gravações.
Imagine uma empresa de serviços que está ganhando mais e mais informações de contato do cliente ao longo do tempo. A empresa de serviços pode saber primeiro e último nome do seu cliente, mas não aprender sobre o seu nome do meio, até horas ou semanas mais tarde, em solicitações de serviço subseqüentes. Este cenário resultaria em partes da fileira 00001 sendo persistiu ao HDFS em diferentes HFiles.
Até que o sistema HBase executa uma compactação menor, a leitura de Row 00001 exigiria três leituras de disco para recuperar o conteúdo hFile relevante! compactações menores procuram minimizar a sobrecarga do sistema, mantendo o número de HFiles sob controle. designers de HBase tomou cuidados especiais para dar o administrador HBase tanto controle de sintonia quanto possível para fazer qualquer impacto no sistema “menor”.
Como o próprio nome indica, uma grande compactação é diferente a partir da perspectiva de um impacto no sistema. No entanto, a compactação é muito importante para a funcionalidade geral do sistema HBase. Um grande compactação procura combinar todos HFiles em um grande hFile.
Além disso, uma grande compactação faz o trabalho de limpeza após um usuário exclui um registro. Quando um usuário emite uma chamada Excluir, o sistema HBase coloca um marcador no par de valores-chave para que ele possa ser removido de forma permanente durante o próximo grande compactação.
Além disso, porque grandes compactações combinar todos HFiles em um grande hFile, é o momento certo para o sistema de rever as versões dos dados e compará-los contra o tempo para viver (TTL) propriedade. Valores mais velhos do que o TTL são removidos.
Tempo de Viver refere-se à variável em HBase é possível definir, a fim de definir como os dados longo com várias versões permanecerá em HBase.
Você pode ter adivinhado que uma grande compactação afeta significativamente o tempo de resposta do sistema. Os usuários que estão tentando adicionar, recuperar ou manipular dados no sistema durante uma grande compactação, eles podem ver o tempo de resposta do sistema pobres.
Video: Что если Земля перестанет вертеться?
Além disso, o conjunto HBase pode ter que dividir regiões, ao mesmo tempo que uma maior compactação está ocorrendo e equilibrar as regiões em todos os RegionServers. Este cenário resultaria em uma quantidade significativa de tráfego de rede entre RegionServers.
Por estas razões, o administrador do HBase precisa ter uma estratégia de compactação grande para sua implantação.