Explicación de la arquitectura de Cassandra: un tutorial completo

Publicado: 2021-03-10

Desde sus inicios en Facebook, Cassandra se ha convertido en uno de los proyectos Apache más populares. Es una base de datos distribuida, de código abierto y de alto rendimiento ampliamente utilizada y facilita la vida de los ingenieros de software, los científicos de datos y los desarrolladores web.

Los usuarios de esta sólida solución de base de datos incluyen personas como IBM, Facebook, Reddit, eBay y Twitter.

Sin embargo, para familiarizarse con Cassandra, debe conocer su arquitectura y la arquitectura Apache Cassandra puede ser un poco difícil de entender.

Es por eso que hemos creado la siguiente guía introductoria sobre la arquitectura Cassandra. Te familiarizará con todos los conceptos necesarios de la arquitectura Cassandra:

Tabla de contenido

Conceptos básicos de la arquitectura Cassandra

La arquitectura Apache Cassandra no tiene nodos maestros o esclavos. En cambio, tiene una arquitectura similar a un anillo donde los nodos se distribuyen lógicamente en un anillo. La arquitectura permite que los datos se distribuyan automáticamente en todos los nodos. Al igual que HDFS, los datos en Cassandra se replican en los nodos para redundancia y se almacenan en la memoria. Utiliza los valores hash de las claves para distribuir datos entre los nodos del clúster.

La arquitectura Cassandra permite que el sistema funcione independientemente de un único punto de falla. Esto significa que si un clúster tiene cien nodos y uno de ellos falla, el clúster seguirá ejecutándose. Por otro lado, con Hadoop, la falla de un nodo de nombre fallaría en todo el sistema.

La arquitectura de Cassandra ofrece una alta escalabilidad, por lo que un clúster puede tener incluso miles de nodos. Además, puede agregar un nuevo nodo a un clúster sin interrumpir sus operaciones.

Además de las características que discutimos anteriormente, la arquitectura Apache Cassandra también admite múltiples centros de datos y permite la replicación de datos entre centros de datos.

Topología y Diseño

La arquitectura de Cassandra se basa en una arquitectura de sistema distribuido. La versión más simple de Cassandra puede ejecutarse en una máquina y funcionar bien con pruebas básicas. Una instancia de Cassandra se llama nodo.

Cassandra ofrece escalabilidad horizontal donde puede agregar más de un nodo como componente de un clúster. Funciona con una arquitectura de igual a igual donde cada nodo está conectado a todos los demás nodos. Cada nodo de Cassandra realiza todas las operaciones de la base de datos y atiende las solicitudes de los clientes sin un nodo maestro.

Esta arquitectura distribuida punto a punto garantiza que un solo punto de falla no haga que todo el sistema falle. Los clústeres en Cassandra pueden comunicarse entre sí para numerosas funciones. Los siguientes conceptos son vitales para dicha comunicación:

Chisme

Gossip es un protocolo de Cassandra que sus nodos utilizan para la comunicación entre pares. Informa a un nodo sobre los estados de los otros nodos. Cada segundo, un nodo realiza chismes con hasta otros tres nodos y cada mensaje de chismes sigue formatos específicos y números de versión para mantener la comunicación eficiente.

Semillas

Cada nodo en Cassandra configura una lista de semillas que es una lista de otros nodos. Un nodo semilla no tiene otro propósito que arrancar un nodo cuando se une por primera vez a un clúster. Después del arranque, un nodo no requiere una semilla al reiniciar. Es mejor usar dos o tres nodos semilla por centro de datos de Cassandra y mantener uniforme la lista de semillas.

Estructura de la base de datos

En Cassandra, los datos se almacenan en tablas donde cada tabla se organiza en filas y columnas. Además, las tablas en Cassandra se agrupan en espacios de claves, por ejemplo, las tablas sobre datos de clientes se pueden agrupar en un espacio de claves, mientras que las tablas sobre transacciones comerciales se pueden almacenar en otro.

Cada tabla tiene una clave principal que se divide en columnas de agrupación y clave de partición. Tenga en cuenta que las columnas de agrupación son opcionales. Cassandra usa la clave de partición para indexar los datos. Todas las filas con una clave de partición común constituyen una partición de datos, la unidad básica para la partición de datos.

Partición en Cassandra

En Cassandra, un particionador convierte las claves de partición en tokens. Hay múltiples opciones de particionador presentes en Cassandra donde Murmur3Partitioner es el predeterminado. A cada token se le asigna un valor entero entre -2^63 y +2^63-1, y el nombre de este rango es el rango del token.

Cada Cassandra posee una parte de este rango y principalmente posee datos relacionados con el rango. Usamos un token para ubicar los datos precisamente entre los nodos.

Puede comprender el sistema de propiedad con este concepto: si un clúster tiene solo un nodo, ese nodo poseería el rango completo de tokens. Con la adición de más nodos, la propiedad del rango de tokens se dividiría en consecuencia.

Nodos virtuales

Cassandra simplifica el cálculo de tokens y los desafíos de asignación mediante el uso de nodos virtuales, también conocidos como Vnodes.

Divide un clúster en numerosos nodos virtuales para asignar tokens y cada nodo físico obtiene la misma cantidad de Vnodes. El número predeterminado de Vnodes propiedad de un nodo es 256. Puede establecer el mismo utilizando la propiedad num_tokens. Cuando agrega un nuevo nodo a un clúster, el algoritmo de asignación de tokens asignaría los tokens necesarios mediante los Vnodes.

Replicación

Cassandra replica los datos presentes en cada espacio de claves con un factor de replicación. Una réplica principal de los datos permanece en el nodo propietario del token, mientras que Cassandra coloca el resto en nodos particulares a través de su estrategia de ubicación de réplicas. Tenga en cuenta que todas las réplicas tienen la misma importancia para la mayoría de las operaciones de la base de datos.

Dos configuraciones afectan la ubicación de la réplica en Cassandra, que son el soplón y la estrategia de replicación. Snitch determina el centro de datos y el rack al que pertenece un nodo. Son responsables de informar a Cassandra sobre la topología para mantener las cosas eficientes.

La estrategia de replicación se establece en el nivel del espacio de claves y hay dos: NetworkTopologyStrategy y estrategia simple. El primero es compatible con racks y centros de datos, mientras que el segundo no.

Teorema de la PAC

Todo sistema distribuido funciona en base al teorema CAP. De acuerdo con este teorema, cualquier sistema distribuido puede entregar correctamente dos de las tres propiedades, consistencia, disponibilidad y tolerancia a la partición.

En Cassandra, puede elegir entre disponibilidad y consistencia. Esto significa que los datos pueden ser muy coherentes con una menor disponibilidad o muy disponibles con una escasa coherencia.

El concepto de solicitar un número específico de reconocimientos se denomina consistencia ajustable y puede aplicarlo en el nivel de consulta individual.

Proceso de escritura

En este proceso, los datos se escriben en un registro de comentarios en un disco y luego se envían a un nodo responsable según el valor hash.

Después de eso, los nodos escriben datos en una tabla en memoria llamada memtable desde donde los datos se escriben en un "sstable" en la memoria. A continuación, se actualiza a la tabla real.

Si el nodo responsable está inactivo por algún motivo, los datos se escriben en otro nodo.

Más información sobre la arquitectura Cassandra

Comprender la arquitectura de Apache Cassandra lo ayudaría a comprender cómo funciona esta solución. A estas alturas, también sabe por qué Cassandra se destaca en la competencia y por qué es tan popular.

Si está interesado en obtener más información sobre las bases de datos, puede consultar los siguientes recursos:

SQL para ciencia de datos: por qué SQL, lista de beneficios y comandos

Las 20 preguntas y respuestas más comunes de la entrevista de SQL [para estudiantes de primer año]

Curso en línea gratuito de SQL con certificado [2021]

Por otro lado, si está buscando una experiencia de aprendizaje personalizada, le recomendamos tomar un curso de ciencia de datos. En upGrad, ofrecemos un Diploma PG en Ciencia de Datos y una Maestría en Ciencias en Ciencia de Datos . Estos cursos le enseñarán todas las habilidades necesarias para convertirse en un profesional de la ciencia de datos.

Conclusión

Si está interesado en saber más sobre el programa Big Data, consulte nuestro programa PG Diploma in Software Development Specialization in Big Data, que está diseñado para profesionales que trabajan y proporciona más de 7 estudios de casos y proyectos, cubre 14 lenguajes y herramientas de programación, manos prácticas. en talleres, más de 400 horas de aprendizaje riguroso y asistencia para la colocación laboral con las mejores firmas.

Consulte nuestros otros cursos de ingeniería de software en upGrad.

Con Currículum de Vanguardia en Big Data

PLAN DE ESTUDIOS DE VANGUARDIA EN BIG DATA DEL IIIT-B
Programa de Certificado Avanzado en Big Data de IIIT Bangalore