Apache Cassandra es un sistema de gestión de bases de datos NoSQL de código abierto y alto rendimiento sin un único punto de error. Apache Cassandra usa un modelo de clúster en su lugar, usa el modelo de tabla que se ve en MySQL/PostgreSQL. Cassandra es adecuado para aplicaciones que no pueden permitirse perder datos. Los datos se replican automáticamente en múltiples nodos para la tolerancia a fallas. Los nodos fallidos se pueden reemplazar automáticamente sin tiempo de inactividad.
Apache Cassandra es la mejor opción para usted si busca escalabilidad, alta disponibilidad y alto rendimiento.
En este tutorial, le mostraremos cómo instalar Apache Cassandra en CentOS 8.
Requisitos
- Un servidor que ejecuta CentOS 8 con un mínimo de 2 GB de RAM.
- Se ha configurado una contraseña raíz en su sistema.
Cómo empezar
Antes de comenzar, se recomienda actualizar su servidor a la última versión estable. Puede actualizar su servidor con el siguiente comando:
dnf update
Una vez que su servidor esté actualizado, reinícielo para aplicar los cambios.
Instalar Java
Apache Cassandra requiere que OpenJDK 8 y Python2 estén instalados en el sistema. Puede instalar OpenJDK 8 y Python2 usando el siguiente comando:
dnf install java-1.8.0-openjdk-devel python2
Una vez que ambos paquetes estén instalados, puede verificar la versión de Java usando el siguiente comando:
java -version
Debería ver el siguiente resultado:
openjdk version "1.8.0_232" OpenJDK Runtime Environment (build 1.8.0_232-b09) OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
Instalar Apache Cassandra
De forma predeterminada, Apache Cassandra no está disponible en el repositorio predeterminado de CentOS 8. Por lo tanto, deberá crear un repositorio para eso. Puede crear un nuevo archivo de repositorio /etc/yum.repos.d/cassandra.repo como se muestra a continuación:
nano /etc/yum.repos.d/cassandra.repo
Agregue las siguientes líneas:
[cassandra] name = DataStax Repo for Apache Cassandra baseurl = http://rpm.datastax.com/community enabled = 1 gpgcheck = 0
Guarde y cierre el archivo, luego instale Apache Cassandra con el siguiente comando:
dnf install dsc20
Una vez que haya terminado con la instalación, puede continuar con el siguiente paso
Crear un archivo de unidad Systemd para Cassandra
De forma predeterminada, el paquete Apache Cassandra no puede generar un archivo de servicio por sí mismo. Por lo tanto, deberá crear un archivo de servicio systemd para administrar el servicio Cassandra. Puedes crearlo con el siguiente comando:
nano /etc/systemd/system/cassandra.service
Agregue las siguientes líneas:
[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
Guarde y cierre el archivo. Luego, vuelva a cargar el demonio systemd con el siguiente comando:
systemctl daemon-reload
A continuación, inicie el servicio Cassandra y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:
systemctl start cassandra
systemctl enable cassandra
También puede verificar el estado del servicio Cassandra con el siguiente comando:
systemctl status cassandra
Debería ver el siguiente resultado:
? cassandra.service - Apache Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2019-12-07 01:25:26 EST; 1min 51s ago Main PID: 1888 (java) Tasks: 53 (limit: 25044) Memory: 272.7M CGroup: /system.slice/cassandra.service ??1888 java -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+CMSClassUnloadingEnabled -XX:+UseThreadPriorities -XX:Threa> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,054 Writing [email protected](10104/101040 serialized/live bytes, 259 ops) Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,118 Completed flushing /var/lib/cassandra/data/system/local/system-local-jb-4-Data.db > Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,124 Compacting [SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,169 Node localhost/127.0.0.1 state jump to normal Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,294 Compacted 4 sstables to [/var/lib/cassandra/data/system/local/system-local-jb-5,].> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,322 Starting listening for CQL clients on localhost/127.0.0.1:9042... Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,376 Using TFramedTransport with a max frame size of 15728640 bytes. Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,378 Binding thrift service to localhost/127.0.0.1:9160 Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,391 Using synchronous/threadpool thrift server on localhost : 9160 Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,422 Listening for thrift clients...
Probar la instalación de Apache Cassandra
Apache Cassandra ahora está instalado y ejecutándose en su servidor. Puede verificar si se está ejecutando o no con el siguiente comando:
nodetool status
Debería ver el siguiente comando:
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 46.11 KB 256 100.0% 2a680007-8c30-4bde-9a3f-9fa212b96d11 rack1
Configurar Apache Cassandra
De manera predeterminada, Cassandra está configurada para aceptar la conexión solo desde el host local.
También puede iniciar sesión en Cassandra a través de Cassandra Query Language. Para acceder al shell de CQL, ejecute el siguiente comando:
cqlsh
Debería ver el siguiente resultado:
Connected to Test Cluster at localhost:9160. [cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0] Use HELP for help. cqlsh>
En el resultado anterior, debería ver que el clúster de Cassandra se denomina "Clúster de prueba". También puede cambiar este nombre de clúster predeterminado.
Para hacerlo, inicie sesión en el shell de CQL con el siguiente comando:
cqlsh
A continuación, ejecute el siguiente comando para cambiar el nombre del clúster a "HowtoForge Cluster" como se muestra a continuación:
cqlsh> UPDATE system.local SET cluster_name = 'HowtoForge Cluster' WHERE KEY = 'local';
A continuación, salga del shell con el siguiente comando:
cqlsh>exit;
A continuación, también deberá editar el archivo de configuración cassandra.yaml y definir su nuevo nombre de clúster:
nano /etc/cassandra/default.conf/cassandra.yaml
Cambie la siguiente línea:
cluster_name: 'HowtoForge Cluster'
Guarde y cierre el archivo cuando haya terminado. Luego, borre el caché del sistema con el siguiente comando:
nodetool flush system
Finalmente, reinicie el servicio Apache Cassandra para aplicar la nueva configuración:
systemctl restart cassandra
Ahora, inicie sesión en el shell de CQL con el siguiente comando:
cqlsh
Debería ver que el nombre del clúster ahora se cambia a "HowtoForge Cluster":
Connected to HowtoForge Cluster at localhost:9160. [cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0] Use HELP for help. cqlsh>
Conclusión
¡Felicidades! Ha instalado y configurado con éxito Apache Cassandra en CentOS 8. No dude en preguntarme si tiene alguna pregunta.