example data big hadoop cassandra nosql hbase cap-theorem

data - hadoop vs mongodb



¿Por qué HBase es una mejor opción que Cassandra con Hadoop? (2)

No creo que ninguno sea mejor que los demás, no es solo uno o el otro. Estos son sistemas muy diferentes, cada uno con sus fortalezas y debilidades, por lo que realmente depende de sus casos de uso. Definitivamente se pueden usar como complemento uno del otro en la misma infraestructura.

Para explicar mejor la diferencia, me gustaría tomar prestada una fotografía de Cassandra: la Guía Definitiva , donde repasa el teorema de la PAC. Lo que dicen es básicamente para cualquier sistema distribuido, debe encontrar un equilibrio entre consistencia , disponibilidad y tolerancia de partición , y solo puede satisfacer de manera realista 2 de estas propiedades. De eso puedes ver que:

  • Cassandra satisface las propiedades de Disponibilidad y Tolerancia de partición .
  • HBase cumplió con las propiedades de consistencia y tolerancia de partición .

Cuando se trata de Hadoop, HBase está construido sobre HDFS, lo que lo hace bastante conveniente de usar si ya tiene una pila de Hadoop. También es compatible con Cloudera, que es una distribución empresarial estándar para Hadoop.

Pero Cassandra también tiene una mayor integración con Hadoop, a saber, Datastax Brisk, que está ganando popularidad. Ahora también puede transmitir datos de forma nativa desde la salida de un trabajo de Hadoop a un clúster Cassandra utilizando algún formato de salida proporcionado por Cassandra (por ejemplo, BulkOutputFormat ), ya no estamos al punto en que Cassandra era solo un proyecto independiente.

En mi experiencia, he encontrado que Cassandra es increíble para lecturas aleatorias, y no tanto para escaneos

Para darle un poco de color a la imagen, he estado usando ambos en mi trabajo en la misma infraestructura, y HBase tiene un propósito muy diferente al de Cassandra. He usado Cassandra principalmente para búsquedas muy rápidas en tiempo real, mientras que he usado HBase más para trabajos pesados ​​ETL por lotes con menores requisitos de latencia.

Esta es una pregunta que realmente valdría la pena publicar en un blog, así que en lugar de seguir y seguir me gustaría señalarte un artículo que resume muchas de las diferencias clave entre los 2 sistemas. En pocas palabras, no hay una solución superior en mi humilde opinión, y realmente debería pensar en sus casos de uso para ver qué sistema es el más adecuado.

¿Por qué usar HBase una mejor opción que usar Cassandra con Hadoop ?

¿Alguien puede dar una explicación detallada sobre esto?

Gracias


Tenemos que comparar pros y contras ambas bases de datos y tomar una decisión cautelosa en función de los requisitos del negocio.

Cassandra

Pros:

  1. Satisface la disponibilidad y el reparto de la teoría CAP y la coherencia eventual .
  2. Escalable con clusters grandes sin punto único de fallas
  3. El lenguaje SQL para desarrollo permite a los desarrolladores realizar una transición fácil desde el fondo RDBMS
  4. Cassandra tiene un excelente rendimiento de lectura de una fila siempre que la semántica de consistencia sea suficiente para los casos de uso
  5. El soporte de Datastax es una gran ventaja
  6. Optimizado para escrituras

Contras:

  1. No admite escaneos de fila basados ​​en rangos
  2. No es compatible con Atomic Compare and Set
  3. Cassandra no es compatible con la funcionalidad del coprocesador
  4. Cassandra admite índices secundarios en familias de columnas donde se conoce el nombre de la columna. (No en columnas dinámicas).
  5. Las agregaciones en Cassandra no son compatibles con los nodos Cassandra

HBase

Pros:

  1. Consistencia fuerte y cumple con la consistencia y la partición de la teoría CAP .
  2. Disparadores equivalentes de RDBMS y procedimientos almacenados
  3. Soporte de Hadoop
  4. Escaneo de filas basado en rangos
  5. Soporte Atomic Compare y Set
  6. Optimizado para lecturas , compatible con el maestro de escritura única
  7. Soporte para Agregación
  8. Alta escalabilidad y Data Auto Sharding

Contras:

  1. Carece de lenguaje amigable para el desarrollo
  2. No admite Read Load Balancing contra una sola fila
  3. Las operaciones entre filas no son atómicas
  4. Punto único de falla si solo se ha utilizado un HBase Master

Eche un vistazo al artículo 1 , el artículo 2 y esta presentation para más detalles.