domingo, 24 de abril de 2016

Proyectos vinculados a Apache Hadoop: Cassandra

Proyectos vinculados: Cassandra



El proyecto Apache Hadoop está formado por HDFS, MapReduce, Hadoop Common (Contiene los paquetes y script necesarios para hacer correr Hadoop) y YARN (Framework para planificación de tareas y gestión de recursos de clúster).

Pero a su vez, hay varios proyectos relacionados, como por ejemplo:

  • Ambari: Herramienta basada en web para administración y monitoreo de clusters Hadoop con soporte para Hadoop HDFS, Hadoop MapReduce, etc.
  • Chukwa: sistema de recolección de datos para la gestión de grandes sistemas distribuidos. Analiza grandes volúmenes de log.
  • HBase: Una base de datos escalable, distribuida que soporta el almacenamiento de datos estructurados para tablas grandes.
  • Cassandra: Base de datos NoSQL distribuida.

¿Qué es Casandra?

[15] “Apache Cassandra es una base de datos NoSQL distribuida y basada en un modelo de almacenamiento de «clave-valor», escrita en Java.

Fue inicialmente desarrollada por Facebook, ya que tener a miles de personas insertando, consultando y borrando datos hacia que las bases de datos tradicionales se les quedasen pequeñas.

Tenían como objetivo alcanzar escalabilidad lineal y alta disponibilidad sin perder prestaciones y lo consiguieron con Cassandra, el cual es escalable de forma elástica.




En 2008 Cassandra pasó a ser de código abierto. Desde entonces es mantenida por Apache y ha alcanzado un gran éxito comercial.

Cassandra puede ejecutarse en un clúster de nodos de forma transparente al usuario. Estos nodos usan arquitectura P2P, lo que proporciona máxima redundancia y pueden estar distribuidos en zonas geográficas muy separadas sin que esto empeore el rendimiento.

En bases de datos relacionales, los datos se almacenan en forma de filas; en Cassandra se hace en columnas con pares Key-valor, lo que conlleva que muchas de las operaciones que se pueden realizar con bases de datos relacionales no sean posibles con este tipo de base de datos NoSQL, ya que están muy simplificadas para ofrecer mayor rendimiento, lo que hace que se tengan que controlar muchas más cosas a la hora de programar (por ejemplo, no hay restricciones).


Ejemplo de tablas key-valor:


Cassandra es un sistema descentralizado en el que cada nodo tiene copias de su información en otros nodos, por lo que si uno falla el problema es resuelto fácilmente. No hay punto único de fallo.



En Cassandra hay una consistencia débil, lo cual debe ser tenido en cuenta a la hora de decidir su implementación. Esto es, los datos se replican en todo el sistema pero tarda un tiempo, ya que se hace mediante una topología en anillo que permite evitar cuellos de botella. Las lecturas muestran el valor más recientemente escrito del que se tenga constancia y pueden variar si se accede a un nodo u otro en un determinado momento.

Twitter @SierraBares
Reacciones:

0 comentarios:

Publicar un comentario