Apache Cassandra es un sistema de administración de base de datos NoSQL de almacenamiento de columna ancha y código abierto diseñado para manejar grandes cantidades de datos. Cassandra se puede distribuir en muchos servidores para lograr una alta disponibilidad sin un punto único de falla. Generalmente, se utiliza para servir como un almacén de datos operativos en tiempo real para aplicaciones transaccionales en línea y como una base de datos de lectura intensiva para sistemas a gran escala. Actualmente, lo utilizan muchas organizaciones, incluidas Netflix, Digg, Adobe, Twitter, HP, IBM, Rackspace, Cisco y Reddit.
En esta guía, explicaremos cómo instalar Apache Cassandra en Oracle Linux 8.
Requisitos
- Un servidor que ejecuta Oracle Linux 8 en Atlantic.Net Cloud Platform
- Una contraseña de root configurada en su servidor
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Oracle Linux como sistema operativo con al menos 4 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
dnf update -y
Paso 2:instalar Java 8
dnf install epel-release python2 python2-pip java-1.8.0-openjdk -y
Después de la instalación, verifique la instalación de Java con el siguiente comando:
java -version
Obtendrá la versión de Java en el siguiente resultado:
openjdk version "1.8.0_332" OpenJDK Runtime Environment (build 1.8.0_332-b09) OpenJDK 64-Bit Server VM (build 25.332-b09, mixed mode)
A continuación, instale la utilidad de línea de comandos cqlsh para conectarse a Cassandra a través de la línea de comandos.
pip2 install cqlsh
Paso 3:instalar Apache Cassandra
nano /etc/yum.repos.d/cassandra.repo
Agregue las siguientes líneas:
[cassandra] name=Apache Cassandra baseurl=https://www.apache.org/dist/cassandra/redhat/40x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https://www.apache.org/dist/cassandra/KEYS
Guarde y cierre el archivo cuando haya terminado, luego instale Apache Cassandra con el siguiente comando:
dnf install cassandra -y
Paso 4:cree un archivo de servicio para Cassandra
Se recomienda crear un archivo de servicio para administrar el servicio Apache Cassandra a través de systemd. 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 para aplicar los cambios:
systemctl daemon-reload
A continuación, inicie y habilite el servicio Cassandra con el siguiente comando:
systemctl start cassandra systemctl enable cassandra
Para verificar el estado de Apache Cassandra, ejecute el siguiente comando:
systemctl status cassandra
Debería ver el siguiente resultado:
● cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2022-04-30 07:54:46 EDT; 15s ago Main PID: 2170 (java) Tasks: 23 (limit: 23694) Memory: 1.1G CGroup: /system.slice/cassandra.service └─2170 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:+AlwaysPreTouch > Apr 30 07:55:00 oraclelinux cassandra[2170]: INFO [main] 2022-04-30 07:55:00,318 CassandraDaemon.java:640 - Classpath: /etc/cassandra/conf:/> Apr 30 07:55:00 oraclelinux cassandra[2170]: INFO [main] 2022-04-30 07:55:00,319 CassandraDaemon.java:642 - JVM Arguments: [-ea, -da:net.ope> Apr 30 07:55:00 oraclelinux cassandra[2170]: WARN [main] 2022-04-30 07:55:00,405 NativeLibrary.java:201 - Unable to lock JVM memory (ENOMEM)> Apr 30 07:55:00 oraclelinux cassandra[2170]: INFO [main] 2022-04-30 07:55:00,569 MonotonicClock.java:202 - Scheduling approximate time conve> Apr 30 07:55:00 oraclelinux cassandra[2170]: INFO [main] 2022-04-30 07:55:00,577 MonotonicClock.java:338 - Scheduling approximate time-check> Apr 30 07:55:00 oraclelinux cassandra[2170]: WARN [main] 2022-04-30 07:55:00,585 StartupChecks.java:143 - jemalloc shared library could not > Apr 30 07:55:00 oraclelinux cassandra[2170]: WARN [main] 2022-04-30 07:55:00,585 StartupChecks.java:187 - JMX is not enabled to receive remo> Apr 30 07:55:00 oraclelinux cassandra[2170]: INFO [main] 2022-04-30 07:55:00,590 SigarLibrary.java:44 - Initializing SIGAR library Apr 30 07:55:00 oraclelinux cassandra[2170]: WARN [main] 2022-04-30 07:55:00,603 SigarLibrary.java:174 - Cassandra server running in degrade> Apr 30 07:55:00 oraclelinux cassandra[2170]: WARN [main] 2022-04-30 07:55:00,604 StartupChecks.java:329 - Maximum number of memory map areas>
Paso 5:verificar Apache Cassandra
Espere un tiempo para que aparezca Apache Cassandra por completo, luego verifique Apache Cassandra usando el siguiente comando:
nodetool status
Obtendrá el siguiente error:
nodetool: Failed to connect to '127.0.0.1:7199' - URISyntaxException: 'Malformed IPv6 address at index 7: rmi://[127.0.0.1]:7199'.
Para resolver este error, agregue el indicador de análisis "heredado" cuando ejecute nodetool:
nodetool -Dcom.sun.jndi.rmiURLParsing=legacy status
Deberías obtener el siguiente resultado:
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 69.06 KiB 16 100.0% 91f2092e-f428-40f8-8093-efe820abe917 rack1
Luego, conéctese al shell de Cassandra usando la utilidad cqlsh:
cqlsh
Una vez que esté conectado, debería obtener el siguiente resultado:
Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.3 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. cqlsh>
Paso 6:cambiar el nombre del clúster de Cassandra
cqlsh
A continuación, cambie el nombre del clúster con el siguiente comando:
cqlsh> UPDATE system.local SET cluster_name = 'Atlantic Cluster' WHERE KEY = 'local';
A continuación, salga del shell de Cassandra con el siguiente comando:
cqlsh> exit
A continuación, edite el archivo de configuración principal de Apache Cassandra y defina su nuevo nombre de clúster:
nano /etc/cassandra/default.conf/cassandra.yaml
Cambie el nombre del clúster de Cassandra como se muestra a continuación:
cluster_name: 'Atlantic Cluster'
Guarde y cierre el archivo, luego reinicie Apache Cassandra para aplicar los cambios:
systemctl restart cassandra
Ahora, verifique el nombre del clúster de Cassandra con el siguiente comando:
cqlsh
Debería obtener su nuevo nombre de clúster en el siguiente resultado:
Connected to Atlantic Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.3 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help.
Conclusión
En la guía anterior, explicamos cómo instalar Apache Cassandra en Oracle Linux 8. Ahora puede usar Apache Cassandra para manejar y administrar grandes conjuntos de datos. ¡Pruébelo con alojamiento VPS de Atlantic.Net!