Compactaciones en HBase
Compactación, el proceso por el cual HBase limpia después de sí, viene en dos sabores: mayores y menores. Principales compactaciones pueden ser un gran problema, pero primero es necesario comprender compactaciones menores.
Compactaciones menores combinan un número configurable de HFiles pequeños en uno hFile más grande. Puede ajustar el número de HFiles para compactar y la frecuencia de una compactación menor. Compactaciones menores son importantes porque sin ellos, la lectura de una fila en particular puede requerir lee muchas disco y hacer que el rendimiento general lento.
La figura, que muestra cómo funciona este concepto, puede ayudar a visualizar cómo la tabla siguiente se puede persistió en el HDFS.
Fila clave | Columna Familia: {Columna Calificador: Versión: Valor} |
---|---|
00001 | CustomerName: {'FN': 1383859182496: 'John', 'LN': 1383859182858: 'Smith', 'MN': 1383859183001: 'Timoteo', 'MN': 1383859182915: 'T'} ContactInfo: {'EA': 1383859183030:'[email protected] ', 'SA': 1383859183073: «1 Hadoop Lane, NY11111 '} |
00002 | CustomerName: {'FN': 1383859183103: 'Jane', 'LN': 1383859183163: 'Doe', Datos de contacto: { 'SA': 1383859185577: «7 HBase Ave, CA22222 '} |
Observe cómo la familia la columna CustomerName fue escrito para el HDFS con dos rubores MEMSTORE y cómo los datos de la familia de la columna ContactInfo se persistió en el disco con una sola MEMSTORE ras. Este ejemplo es hipotético, pero es un escenario probable en función del calendario de las escrituras.
Imagine una empresa de servicios que está ganando más y más información de contacto del cliente con el tiempo. La compañía de servicios puede saber el nombre y apellido de sus clientes, pero no conocer su nombre medio hasta horas o semanas más tarde en las solicitudes de servicio posteriores. Este escenario se traduciría en algunas partes de la fila 00001 se persistido al HDFS en diferentes HFiles.
Hasta que el sistema HBase realiza una compactación menor de edad, la lectura de la fila 00001 requeriría de tres lecturas de disco para recuperar el contenido hFile relevante! Compactaciones menores buscan minimizar la sobrecarga del sistema mientras se mantiene el número de HFiles bajo control. Diseñadores HBase tomó especial cuidado para dar el administrador HBase tanto control de sintonía como sea posible para hacer cualquier impacto en el sistema ". Menor "
Como su nombre indica, un compactación importante es diferente de la perspectiva de un impacto en el sistema. Sin embargo, la compactación es muy importante para la funcionalidad global del sistema HBase. Una compactación importante busca combinar todas HFiles en un gran hFile.
Además, una compactación importante que hace el trabajo de limpieza después de un usuario elimina un registro. Cuando un usuario emite una llamada Delete, el sistema HBase coloca un marcador en el par clave-valor, de modo que se puede quitar de forma permanente durante el próximo compactación importante.
Además, debido a importantes compactaciones combinan todos HFiles en un gran hFile, es el momento adecuado para el sistema para revisar las versiones de los datos y compararlos contra el tiempo de vida (TTL) propiedad. Valores mayores que el TTL se purgan.
Tiempo para vivir se refiere a la variable en HBase puede ajustar con el fin de definir el tiempo de datos con múltiples versiones permanecerá en HBase.
Es posible que haya adivinado que una compactación importante afecta significativamente el tiempo de respuesta del sistema. Los usuarios que están tratando de añadir, recuperar o manipular los datos en el sistema durante una compactación importante, vean mal tiempo de respuesta del sistema.
Además, el clúster HBase puede tener que dividir regiones, al mismo tiempo que un gran compactación se lleva a cabo y equilibrar las regiones a través de todos RegionServers. Este escenario daría lugar a una cantidad significativa de tráfico de red entre RegionServers.
Por estas razones, el administrador HBase necesita tener una estrategia importante de compactación para su despliegue.