Apache Cassandra es una base de datos NoSQL de código abierto. Una de sus características principales es su naturaleza descentralizada que brinda una tolerancia a fallas única. Tener nuestros datos replicados en los centros de datos significa que nuestra producción no sufrirá la pérdida de uno de nuestros sitios, algo con lo que sueñan todos los administradores de sistemas (o que realmente se alegran de tener esa configuración).
En este tutorial, instalaremos Cassandra en Red Hat Enterprise Linux 8 agregando el repositorio de Cassandra, instalando el software y configurando todo lo necesario para que nuestro servicio esté en funcionamiento y sea fácil de administrar.
En este tutorial aprenderás:
- Cómo agregar el repositorio de Cassandra
- Cómo instalar los paquetes necesarios
- Cómo reparar el archivo de la unidad systemd
- Cómo probar Cassandra con cqlsh

Consulta de tablas del sistema en Cassandra en RHEL 8
Requisitos de software y convenciones utilizadas
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | Red Hat Enterprise Linux 8 |
Software | Apache Cassandra 3.11 |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Cómo instalar cassandra en Redhat 8 instrucciones paso a paso
Red Hat Enterprise Linux utiliza paquetes basados en rpm y Apache Cassandra proporciona un depósito de rpm. Si bien no todas las dependencias están incluidas, los problemas que deben resolverse no son una molestia. Todo lo que necesitamos es Java 8 (OpenJDK u Oracle JDK) instalado de antemano.
- Instalaremos Cassandra desde el repositorio oficial de Apache. Para poder hacer eso, creamos un archivo de texto
/etc/yum.repos.d/cassandra.repo
con el siguiente contenido:[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
- Con esa definición de repositorio en su lugar, podemos instalar Cassandra con
dnf
:# dnf install cassandra
La instalación le pedirá que acepte las claves de los desarrolladores. Como confiamos en que no publicarán algo engañoso, aceptaremos las claves para continuar con la instalación.
- El paquete instalado incluye script de inicio para SysV y
systemd
puede generar un archivo de servicio por sí mismo, sin embargo, eso no funciona bien. Para salvarnos de un poco de prueba por error, creamos un nuevo archivo de servicio simple /etc/systemd/system/cassandra.service
con el siguiente contenido:
[Unit]
Description=Apache Cassandra
After=network.target
[Service]
PIDFile=/var/run/cassandra/cassandra.pid
User=cassandra
Group=cassandra
ExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pid
Restart=always
[Install]
WantedBy=multi-user.target
systemd
debe volver a cargarse para estar al tanto de la nueva definición de servicio:# systemctl daemon-reload
- Ahora podemos administrar nuestro servicio con systemd. Podemos iniciar, detener y obtener el estado de Cassandra:
# systemctl start|stop|status cassandra
Su estado de ejecución debería proporcionar algo similar a la siguiente salida con el archivo de unidad creado anteriormente:
# systemctl status cassandra
cassandra.service - Apache Cassandra
Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2019-01-08 18:39:32 CET; 24s ago
Main PID: 6615 (java)
Tasks: 58 (limit: 12544)
Memory: 1.1G
CGroup: /system.slice/cassandra.service
6615 java -Xloggc:/var/log/cassandra/gc.log -ea [...]
- Opcionalmente, podemos habilitar el inicio automático en el arranque:
# systemctl enable cassandra
- Para ejecutar algunas consultas de ejemplo para probar el funcionamiento del sistema de administración de la base de datos, usaremos
cqlsh
para acceder al shell de CQL. Esta herramienta se envía con la instalación, sin embargo, python
esta herramienta depende de no. Tendremos que instalarlo con dnf
:# dnf install python2
- Para ejecutar una consulta de ejemplo en Cassandra, podemos ingresar el shell de CQL:
# cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.3 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh>
- Como los datos del usuario aún no se han insertado en la base de datos, consultaremos algunos datos de las tablas del sistema para ver si nuestra instalación funciona bien:
cqlsh> SELECT keyspace_name, table_name FROM system_schema.tables where keyspace_name = 'system_auth';
keyspace_name | table_name
---------------+--------------------------------
system_auth | resource_role_permissons_index
system_auth | role_members
system_auth | role_permissions
system_auth | roles
(4 rows)