GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar Apache Cassandra Cluster en Linux

Apache Cassandra es un sistema de administración de bases de datos distribuidas NoSQL gratuito y de código abierto creado por Facebook (ahora Meta). La naturaleza distribuida de Cassandra permite alta disponibilidad y alto rendimiento sin un único punto de falla.

Debido a su escalabilidad, Cassandra es adecuada para conjuntos de datos críticos y activos masivos. Organizaciones grandes y famosas como Apple, Bloomberg, BestBuy, eBay, Netflix, Spotify y muchas más. Y si estás interesado en conocer Apache Cassandra, estás en el lugar correcto.

En este artículo, aprenderá cómo instalar y configurar un Apache Cassandra Cluster en sistemas Linux. También aprenderá cómo interactuar con Cassandra utilizando sus herramientas de línea de comandos.

Requisitos

Para seguir los ejemplos de este tutorial, asegúrese de cumplir los siguientes requisitos.

  • Necesitará dos servidores Linux en la misma red. Este tutorial usará dos servidores Rocky Linux (v8.5) con los siguientes detalles.
Nombre de host Dirección IP
casandra01 172.16.1.10
casandra02 172.16.1.15

La documentación de Apache Cassandra no proporciona una lista prescriptiva de distribuciones de Linux compatibles, pero menciona que Cassandra puede ejecutarse en CentOS, RHEL, Debian y SUSE Enterprise Linux.

  • Debe tener privilegios sudo o acceso a la cuenta raíz.
  • Editor de texto Nano o cualquier editor de texto basado en Linux.

Instalación de Java OpenJDK y Python

Antes de comenzar con la instalación de Apache Cassandra, primero instale las dependencias del software. Cassandra es una aplicación basada en Java, y la última versión (v4.0 a partir de este escrito) requiere Java OpenJDK 1.8 y Python 3.6.

Este tutorial utiliza el administrador de paquetes DNF para distribuciones de Linux basadas en RPM. También puede usar Yum o Apt en distribuciones basadas en DEB como Ubuntu y Debian. Consulte la documentación de su distribución para determinar qué administrador de paquetes usar.

Siga los pasos a continuación para instalar Java OpenJDK 1.8 y Python 3.6 en cada servidor.

1. Abra su cliente SSH, conéctese a su servidor y ejecute sudo su comando para convertirse en root.

ssh [email protected]_name_or_IP
sudo su

2. A continuación, ejecute el dnf comando a continuación para instalar los paquetes Java OpenJDK 1.8 y Python 3.6. Espere a que se complete la instalación.

dnf install java-1.8.0-openjdk python36 -y

3. Ahora, verifique la versión de Java ejecutando el siguiente comando.

java -version

A continuación puede ver que la versión actual de Java OpenJDK es 1.8.0_312.

4. A continuación, configure el intérprete de Python predeterminado en sus servidores para Python 3.6. Para hacerlo, ejecute el alternatives comando como se muestra a continuación.

alternatives --config python

Escriba el número correspondiente a su versión de Python en el indicador de selección de comandos. El siguiente ejemplo muestra que Python3 es la opción 2.

5. Por último, ejecute el siguiente comando para verificar la versión de Python.

python --version

Debería ver que Python 3.x.x es el valor predeterminado, similar a la captura de pantalla a continuación.

Instalación de la base de datos Apache Cassandra NoSQL

Ha instalado las dependencias y se ha asegurado de que sean versiones adecuadas. ¡Ahora es el momento de instalar Apache Cassandra!

Si bien hay muchas formas de instalar Cassandra, la forma más conveniente es a través del repositorio oficial. Pero hay algunos pasos rápidos que debe realizar primero. Para instalar Cassandra NoSQL Database en sistemas Linux, proceda de la siguiente manera.

1. Ejecute el siguiente comando para crear un nuevo archivo de repositorio para Cassandra.

nano /etc/yum.repos.d/cassandra.repo

2. Copie la siguiente configuración del repositorio de Cassandra. Este repositorio está disponible para la mayoría de las distribuciones de Red Hat, incluido Rocky Linux.

[cassandra]
name=Apache Cassandra
baseurl=https://downloads.apache.org/cassandra/redhat/40x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS

3. Después de editar, guarde y cierre el archivo presionando Ctrl+X , Y y Enter .

4. A continuación, ejecute el dnf Comando a continuación para verificar todos los repositorios disponibles en su sistema.

dnf repolist

Debería ver el repositorio de Apache Cassandra en la lista de repositorios, como se muestra a continuación.

5. Ahora, instale Cassandra NoSQL Database ejecutando el siguiente comando.

dnf install cassandra -y

Debería ver un mensaje de confirmación después de instalar Apache Cassandra, similar a la captura de pantalla a continuación.

Configuración del clúster de Apache Cassandra

Una vez que haya instalado Cassandra, deberá editar la configuración /etc/cassandra/conf/cassandra.yaml y configurar el clúster de Cassandra.

Para que el clúster de Cassandra funcione, deberá cambiar la configuración predeterminada de Cassandra en todos los servidores, como:

  • Cambiar el cluster_name predeterminado .
  • Agregue direcciones IP del servidor al seeds opción.
  • Cambiar el listen_address predeterminado a la dirección IP local.
  • Habilite el rpc_address para conexiones de clientes.

Ahora, continúe con los siguientes pasos para configurar el clúster de Cassandra.

1. En cassandra01 , ejecute el siguiente comando para abrir la configuración de Cassandra cassandra.yaml para editar

nano /etc/cassandra/conf/cassandra.yaml

2. Cambie el valor predeterminado de cluster name con el nuevo nombre. Este tutorial usa el nuevo nombre de clúster ATA Cluster .

cluster_name: 'ATA Cluster'

3. Ahora, agregue la dirección IP de cada servidor con el puerto Cassandra TCP predeterminado 7000 al seeds opción a continuación. El formato sigue el patrón IP:Port,IP:Port y el puerto predeterminado es 7000 .

seeds: "172.16.1.10:7000,172.16.1.15:7000"

4. A continuación, cambie el listen_address predeterminado a la dirección IP del servidor, no servidor local. La opción listen_address define qué dirección IP se ejecutará Cassandra.

# for cassandra01
listen_address: 172.16.1.10

# for cassandra02
listen_address: 172.16.1.15

5. A continuación, cambie la opción predeterminada rpc_address con la dirección IP del servidor, el mismo valor que el listen_address opción. En el entorno del clúster de Cassandra, todas las conexiones de los clientes pasan por la dirección IP del servidor local en TCP predeterminado. puerto 9042 .

# for cassandra01
rpc_address: 172.16.1.10

# for cassandra02
rpc_address: 172.16.1.15

6. Guarde y cierre el archivo de configuración presionando Ctrl+X , Y y Enter .

7. Después de editar la configuración de Cassandra, ejecute el siguiente comando para iniciar el servicio de Cassandra. Este comando iniciará automáticamente el clúster y llegará a otros servidores cuyas direcciones IP están en el seeds opción.

service cassandra start

8. Ahora, confirme el estado del servicio Cassandra ejecutando el siguiente comando.

service cassandra status

Obtendrá un resultado similar a la captura de pantalla a continuación. Como puede ver, el servicio Cassandra está activo (en ejecución) .

Asegurar el clúster de Apache Cassandra con firewall

Configurar un firewall para asegurar los servicios es una tarea esencial en el entorno de producción. Hacerlo le permite limitar el acceso al clúster de Cassandra solo desde direcciones IP o rangos de red específicos.

En las distribuciones genéricas de Red Hat Linux, firewalld es el software de firewall predeterminado.

De forma predeterminada, Cassandra requiere que dos puertos TCP estén abiertos. El puerto 7000 es el puerto de clúster predeterminado y el puerto 9042 es el puerto de transporte predeterminado nativo para las conexiones de clientes.

Siga estos pasos para asegurar la implementación del clúster de Cassandra con un firewall.

1. Primero, confirma si ya tienes firewalld en sus servidores ejecutando el siguiente comando.

dnf search firewalld

Si firewalld no existe, siga los pasos #2 y #3. Pero si firewalld ya existe en el servidor, salte al paso 4 en su lugar.

2. Si no tienes firewalld en su sistema, ejecute el siguiente comando para instalarlo.

dnf install firewalld -y

3. Ahora, inicie el firewalld servicio ejecutando el siguiente comando. Este comando iniciará el firewalld servicio con reglas predeterminadas, abriendo puertos y servicios esenciales como clientes SSH y DHCP.

systemctl start firewalld

De forma predeterminada, firewalld proporciona una interfaz de línea de comandos firewall-cmd para gestionar y mantener las reglas del cortafuegos.

4. Ejecute el siguiente firewall-cmd comando para crear una nueva zona para el clúster de Cassandra y recargar el firewalld normas.

# add firewalld zone cassandra-cluster
firewall-cmd --new-zone=cassandra-cluster --permanent

# reload firewalld
firewall-cmd --reload

Verá el mensaje de salida éxito , lo que significa que la operación se ha realizado correctamente. La opción --permanent hace que las nuevas reglas de firewall sean permanentes.

5. A continuación, agregue la red CIDR de su servidor al cassandra-cluster zona. Esta regla permite cualquier servidor o cliente en el CIDR 172.16.1.0/24 para hablar y conectar. Para agregar una sola dirección IP, ingrese la dirección IP 172.16.1.20 .

firewall-cmd --zone=cassandra-cluster --add-source=172.16.1.0/24 --permanent

6. Ahora, ejecute el siguiente comando para agregar los puertos de servicio de Cassandra 7000 y 9042 al cassandra-cluster zona.

# add storage_port Apache Cassandra to the zone cassandra_cluster
firewall-cmd --zone=cassandra-cluster --add-port=7000/tcp --permanent

# add Apache Cassandra port for client connections
firewall-cmd --zone=cassandra-cluster --add-port=9042/tcp --permanent

7. Por último, recarga firewalld reglas para aplicar una nueva configuración ejecutando el siguiente comando.

firewall-cmd --reload

Ahora solo se puede acceder al clúster de Cassandra a través del 172.16.1.0/24 y eliminará todas las conexiones de otras redes.

Comprobación del estado del clúster de Apache Cassandra

Nodetool es una utilidad de comando nativa para administrar y monitorear el clúster de Cassandra. Esta herramienta le permite mostrar el estado de las métricas del clúster de Cassandra, como tablas y espacios de claves, métricas de servidor, aplicaciones, métricas de conexión de clientes, etc.

En general, los administradores ejecutan el nodetool comando directamente en el servidor Cassandra operativo que realiza el mantenimiento y la supervisión de la base de datos de rutina.

Siga los pasos a continuación para aprender los conceptos básicos para monitorear el clúster de Cassandra usando el nodetool utilidad.

1. Verifique el estado del clúster de Cassandra ejecutando el siguiente comando.

nodetool status

Obtendrá un resultado similar a la captura de pantalla a continuación.

  • T significa que el nodo está ARRIBA o corriendo.
  • N significa que el nodo es NORMAL .
  • La dirección puede ser la dirección IP o URL del nodo.
  • Cargar es el tamaño de los archivos en el directorio de datos de Cassandra. Este valor se actualiza cada 90 segundos.
  • La ficha es el número de tokens disponibles en el nodo.
  • El ID de host es el ID de red del nodo. Cada nodo tiene un id diferente.

2. Ahora, ejecute el siguiente comando para obtener información detallada sobre el nodo único.

nodetool info

A continuación, puede ver información detallada sobre el nodo, como:

  • Tiempo de actividad
  • Información de la memoria del montón
  • Cargar
  • Caché de claves y caché de contadores
  • Ubicación del centro de datos

3. A continuación, muestre los detalles del clúster de Cassandra ejecutando el siguiente comando.

nodetool describecluster

Puede ver a continuación el clúster Cassandra detallado.

  • Información del clúster contiene información básica sobre el clúster de Cassandra, incluido el nombre, el particionador predeterminado de Cassandra y la versión del esquema.
  • Estadísticas de todos los nodos indicar el estado actual de todos los nodos en el clúster de Cassandra.
  • Si ha creado el clúster de Cassandra en varios centros de datos, verá todos sus centros de datos en los Centros de datos sección.
  • Las versiones de la base de datos La sección muestra la versión de Cassandra en cada nodo del clúster.
  • La lista de todos los espacios de claves o bases de datos disponibles en el clúster de Cassandra está disponible en Keyspaces sección.

Conexión al clúster de Apache Cassandra

La instalación del paquete Apache Cassandra en el servidor también instala Cassandra Query Language Shell (CQLSH). Esta herramienta permite a los administradores conectarse a Apache Cassandra y administrar bases de datos o espacios de claves y usuarios.

Siga los pasos a continuación para conectarse al clúster de Cassandra usando la línea de comando cqlsh .

1. Ejecute el cqlsh Comando a continuación para conectarse al clúster de Cassandra. Especifique la dirección IP de Cassandra y el puerto predeterminado para las conexiones del cliente es 9042 .

cqlsh 172.16.1.10 9042

Una vez que se conecte al clúster de Cassandra, verá un resultado similar al de la siguiente captura de pantalla. Este ejemplo utiliza el nombre de clúster ATA Cluster en la dirección IP del servidor 172.16.1.10 .

2. Ahora, ejecute las siguientes consultas CQL para verificar a qué servidor se conectó, verifique el nombre del clúster y verifique todos los espacios de claves disponibles en Cassandra.

# show detailed host
SHOW HOST

# show cluster name
DESCRIBE CLUSTER

# list all available keyspaces (databases)
DESCRIBE KEYSPACES

Verá un resultado similar a la captura de pantalla a continuación. El SHOW HOST consulta le muestra dónde está conectado, la consulta DESCRIBE CLUSTER muestra el nombre del clúster de Cassandra y la consulta DESCRIBE KEYSPACES le muestra la lista de espacios clave en su nodo Cassandra.

3. Finalmente, escriba el exit para salir del cqlsh entorno.

Conclusión

A lo largo de este tutorial, ha aprendido a instalar y configurar Apache Cassandra en Linux. También configuró el clúster de Apache Cassandra con dos servidores Linux y aseguró la implementación con Firewalld.

En este punto, está listo para agregar más servidores y escalar sus implementaciones, brindando alta disponibilidad, consistencia y redundancia para sus datos.

¿Qué sigue para ti? Tal vez comience configurando la autenticación y la autorización en su clúster de Cassandra, luego configure la replicación de espacio de claves/base de datos para sus aplicaciones. Y mientras lo hace, ¿por qué no aprender a mantener el clúster de Apache Cassandra con nodetool?


Linux
  1. Cómo instalar Python en Linux

  2. Cómo instalar Apache Cassandra en AlmaLinux / Rocky Linux 8

  3. Cómo instalar Apache Cassandra en Ubuntu 18.04 / Ubuntu 16.04 y Debian 9

  4. Cómo instalar Python en Linux Mint 20

  5. Cómo instalar Apache Kafka en Rocky Linux 8

Cómo instalar Apache 2.4 y PHP 7.4 en Amazon Linux

Cómo instalar Apache Cassandra en AlmaLinux 8 | Linux rocoso 8

Cómo instalar y configurar Apache Cassandra en un sistema Linux

Cómo instalar Apache en Arch Linux

Cómo instalar Anaconda Python en Rocky Linux 8

Cómo instalar Apache Solr en Oracle Linux 8