Guía de tecnologías

Instalar Apache Cassandra en CentOS 7

5 min read Bases de Datos Actualizado 21 Oct 2025
Instalar Apache Cassandra en CentOS 7
Instalar Apache Cassandra en CentOS 7

Introducción

Apache Cassandra es un sistema de gestión de bases de datos NoSQL distribuido, libre y de código abierto. Se utiliza para almacenar grandes volúmenes de datos en clústeres descentralizados y altamente disponibles. Cassandra distribuye datos entre muchos servidores para evitar puntos únicos de fallo.

Definición rápida: Cassandra es una base de datos distribuida orientada a columnas pensada para alta disponibilidad y escalado horizontal.

Antes de empezar: requisitos y modelo mental

  • Requisitos mínimos: servidor CentOS 7 con acceso root o sudo, conexión a Internet para descargar paquetes, al menos 2 GB de RAM (más para producción).
  • Modelo mental: piensa en Cassandra como un anillo de nodos que comparten datos y responsabilidad por particiones. Cada nodo puede atender lecturas y escrituras.

Importante: Cassandra requiere Java; la versión de Java afecta la compatibilidad. Esta guía muestra la instalación con Oracle JDK 8 como en el ejemplo original, pero existe la alternativa de usar OpenJDK (ver sección Alternativas).

Paso 1 - Instalar JAVA

Actualiza los paquetes y repositorios antes de instalar software:

yum -y update

Descarga el RPM de Oracle Java (ejemplo). Si no tienes wget, instala wget primero:

yum -y install wget

Ejemplo de descarga del RPM (comando tal cual):

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"

Instala el RPM descargado:

yum -y localinstall jdk-8u131-linux-x64.rpm

Verifica la versión de Java:

java -version

Salida esperada (ejemplo):

[root@liptan-pc ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Comprueba la variable de entorno JAVA_HOME:

echo $JAVA_HOME

Si la salida está vacía, añade las variables al perfil del usuario. Edita el fichero ~/.bash_profile con tu editor preferido (aquí usamos nano):

nano ~/.bash_profile

Añade estas líneas al final del archivo (mantén las rutas según tu instalación):

export JAVA_HOME=/usr/java/jdk1.8.0_131/
export JRE_HOME=/usr/java/jdk1.8.0_131/jre

Aplica los cambios cargando el perfil:

source ~/.bash_profile

Verifica nuevamente:

[root@liptan-pc ~]# echo $JAVA_HOME 
/usr/java/jdk1.8.0_131/

Nota: si instalas otra versión de JDK, ajusta las rutas JAVA_HOME/JRE_HOME.

Paso 2 - Añadir el repositorio e instalar Cassandra

Crea un archivo de repositorio para Cassandra:

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

Añade el siguiente contenido al archivo:

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

Instala Cassandra usando yum:

yum -y install cassandra

Después de la instalación, recarga los daemons del sistema:

systemctl daemon-reload

Inicia Cassandra:

systemctl start cassandra

Activa el inicio automático con el sistema:

systemctl enable cassandra

Verifica el estado del clúster con nodetool:

nodetool status

Salida ejemplo cuando todo está bien:

[root@ip-172-31-7-136 ~]# nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens       Owns (effective)  Host ID                               Rack
UN  127.0.0.1  136.29 KiB  256          100.0%            b3d26649-9e10-4bee-9b3c-8e81c4394b2e  rack1

Solución de problemas comunes

Si nodetool devuelve un error de conexión, por ejemplo:

nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'.

es posible que debas ajustar la configuración de RMI en el fichero de entorno de Cassandra. Edita el archivo:

nano /etc/cassandra/default.conf/cassandra-env.sh

Busca la línea con java.rmi.server.hostname:

# JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname="

Descomenta y establece la IP de localhost (o la IP pública según tu despliegue):

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1"

Guarda, cierra el editor y reinicia Cassandra:

systemctl restart cassandra

Vuelve a ejecutar:

nodetool status

Si nodetool muestra el estado, la comunicación JMX está funcionando.

Usar cqlsh para ejecutar consultas

Cassandra incluye cqlsh, una consola interactiva para CQL (Cassandra Query Language). Inicia cqlsh con:

cqlsh

Salida ejemplo:

[root@liptan-pc ~]# cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.0 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.

Desde cqlsh puedes crear keyspaces, tablas y ejecutar consultas CQL.

Alternativas y notas sobre Java

  • OpenJDK: en muchos entornos es preferible usar OpenJDK 8 (paquetes openjdk) por licencia y compatibilidad. Para producción, verifica la compatibilidad de la versión de Java con la versión de Cassandra que vas a usar.
  • Distribuciones de Cassandra: además del repositorio oficial, existen paquetes proporcionados por terceros o contenedores Docker para despliegues más reproducibles.

Seguridad y puertos importantes

  • Puertos por defecto:
    • 7000: internode (sin SSL)
    • 7001: internode (SSL)
    • 7199: JMX (nodetool)
    • 9042: cliente CQL nativo
    • 9160: Thrift (obsoleto en versiones modernas)

Asegura el acceso a estos puertos mediante firewall o reglas de red. No expongas JMX (7199) directamente a Internet.

Verificación y criterios de aceptación

  • Cassandra está activo y habilitado: systemctl status cassandra muestra active (running).
  • nodetool status muestra al menos un nodo UP y en estado Normal (UN).
  • cqlsh permite conectar y ejecutar una consulta simple: SELECT release_version FROM system.local;

Ejemplo de validación rápida desde la terminal:

nodetool status
cqlsh -e "SELECT release_version FROM system.local;"

Role-based checklists

Administrador de sistemas (Ops):

  • Actualizar sistema y repositorios.
  • Instalar Java y configurar JAVA_HOME.
  • Añadir repo y desplegar Cassandra.
  • Configurar firewall y JMX seguro.
  • Monitorizar logs en /var/log/cassandra/.

Desarrollador:

  • Conectarse con cqlsh y probar consultas.
  • Crear keyspace y tablas de prueba.
  • Validar latencia y consistencia con CL (Consistency Level).

Comprobaciones rápidas (cheat sheet)

  • Reiniciar Cassandra: systemctl restart cassandra
  • Ver logs: tail -f /var/log/cassandra/system.log
  • Estado del clúster: nodetool status
  • Conexión CQL: cqlsh 127.0.0.1

Cuándo este procedimiento puede fallar

  • Java incompatible o ruta JAVA_HOME incorrecta.
  • Firewall bloqueando puertos JMX o CQL.
  • Repositorio inaccesible (problemas de red o cambios en la URL del proyecto).
  • Versiones de Cassandra y Java no compatibles.

Buenas prácticas para producción

  • Ejecuta Cassandra en múltiples nodos para tolerancia a fallos.
  • Mantén sincronizadas las versiones y realiza pruebas en un entorno de staging.
  • Habilita copias de seguridad regulares y monitorización (por ejemplo con Prometheus/Grafana).
  • Protege JMX y la interfaz CQL con TLS/VPN en entornos públicos.

Resumen

Apache Cassandra ya debería estar instalado y funcionando en tu servidor CentOS 7. Instalaste Java, añadiste el repositorio oficial, instalaste Cassandra, resolviste problemas de conexión JMX y comprobaste la instalación con nodetool y cqlsh.

Puntos clave:

  • Asegurar la versión de Java y JAVA_HOME.
  • Configurar correctamente cassandra-env.sh para JMX.
  • Proteger los puertos y monitorizar el clúster.

Notas finales: visita el sitio oficial de Apache Cassandra para documentación detallada y guías de arquitectura si vas a desplegar en producción.

Autor
Edición

Materiales similares

Configurar WebDAV con lighttpd en Fedora 9
Administración

Configurar WebDAV con lighttpd en Fedora 9

Separador de miles en Excel — Guía completa
Productividad

Separador de miles en Excel — Guía completa

Live Voicemail en iPhone: guía práctica
Guía técnica

Live Voicemail en iPhone: guía práctica

Actualizar CentOS 7 a CentOS 8 — Guía
Linux

Actualizar CentOS 7 a CentOS 8 — Guía

Cómo instalar F1 TV en Android TV
Streaming

Cómo instalar F1 TV en Android TV

Abrir Chrome en modo incógnito desde el menú contextual
Windows 11

Abrir Chrome en modo incógnito desde el menú contextual