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

Apache Cassandra es un sistema de gestión de bases de datos distribuidas NoSQL de código abierto. Cassandra se puede escalar horizontalmente agregando más nodos a través de los cuales los datos se replican automáticamente. Los nodos se pueden agregar o eliminar sin ningún tiempo de inactividad. Los nodos pueden organizarse lógicamente como un clúster o un anillo y configurarse en varios centros de datos para mejorar la velocidad y la confiabilidad de las aplicaciones de alto rendimiento.
En este tutorial, aprenderemos cómo instalar Apache Cassandra en AlmaLinux y Rocky Linux 8 OS. Los comandos para ambos sistemas operativos serán idénticos a menos que se especifique lo contrario.
Requisitos previos
Paso 1 – Instalar Java
Apache Cassandra requiere Java 8 para funcionar. La última versión de Cassandra incluye soporte experimental para Java 11, pero para nuestro tutorial, nos limitaremos a usar Java 8.
$ sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Confirme la instalación de Java.
$ java -version openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
Paso 2: instale Apache Cassandra
El primer paso es agregar el repositorio oficial de Cassandra.
Ejecute el siguiente comando para crear el archivo de repositorio /etc/yum.repos.d/cassandra.repo e ingrese los detalles.
$ sudo tee /etc/yum.repos.d/cassandra.repo <<EOF > [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 > EOF
Ahora que se creó el archivo repo, instale Cassandra.
$ sudo dnf install cassandra -y
Paso 3 – Instalar Cqlsh
Usaremos el CQL Shell (cqlsh) herramienta para interactuar con Cassandra. La herramienta es compatible con Python 2.7 o Python 3.6+. Para nuestro tutorial, usaremos Python 3.8. Instale Python 3.8.
$ sudo dnf install python38
Establezca Python 3.8 como la versión predeterminada de Python.
$ sudo update-alternatives --config python There are 3 programs which provide 'python'. Selection Command ----------------------------------------------- *+ 1 /usr/libexec/no-python 2 /usr/bin/python3 3 /usr/bin/python3.8 Enter to keep the current selection[+], or type selection number: 3
Se te presentarán múltiples opciones. Elegiremos el número 3 para configurar Python 3.8 como la versión predeterminada en nuestro caso.
Confirme la instalación de Python.
$ python --version Python 3.8.8
Después de usar la utilidad de actualización de alternativas, no necesita usar el comando python3.
Instalar cqlsh usando el administrador de paquetes pip Python.
$ pip3 install --user cqlsh
Confirmar la cqlsh Instalar en pc.
$ cqlsh --version cqlsh 6.0.0
Paso 4: cree un archivo de unidad Systemd para Cassandra
Cree y abra /etc/systemd/system/cassandra.service para editarlo.
$ sudo nano /etc/systemd/system/cassandra.service
Pegue el siguiente código en él.
[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 el archivo presionando Control + X y entrando Y Cuando se le solicite.
Vuelva a cargar el demonio de servicio.
$ sudo systemctl daemon-reload
Habilite e inicie el servicio Cassandra.
$ sudo systemctl enable cassandra --now
Consultar el estado del servicio.Publicidad
$ sudo systemctl status cassandra ? cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-12-30 11:07:43 UTC; 12s ago Main PID: 4679 (java) Tasks: 48 (limit: 23696) Memory: 1.3G CGroup: /system.slice/cassandra.service ??4679 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256>
También puede verificar el estado usando el comando nodetool.
$ 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 69.09 KiB 16 100.0% 2fe7ccae-2af9-4841-9bff-bffa29f10dc5 rack1
Paso 5: configurar Cassandra
La ubicación predeterminada de los archivos de configuración de Cassandra es /etc/cassandra. La ubicación predeterminada para los directorios de registro y datos es /var/log/cassandra y /var/lib/cassandra.
La configuración del nivel de JVM, como el tamaño del almacenamiento dinámico, se puede establecer a través del archivo /etc/cassandra/conf/cassandra-env.sh. Puede pasar argumentos de línea de comandos de JVM adicionales a la variable JVM_OPTS. Los argumentos se pasan a Cassandra cuando se inicia.
5.1 Habilitar autenticación de usuario
Para habilitar la autenticación de usuario, primero haga una copia de seguridad del archivo /etc/cassandra/conf/cassandra.yaml.
$ sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup
Abre el archivo cassandra.yaml para editarlo.
$ sudo nano /etc/cassandra/conf/cassandra.yaml
Localice los siguientes parámetros en este archivo.
authenticator: AllowAllAuthenticator authorizer: AllowAllAuthorizer roles_validity_in_ms: 2000 permissions_validity_in_ms: 2000
Cambie los valores de los parámetros como se indica a continuación.
. . . authenticator: org.apache.cassandra.auth.PasswordAuthenticator authorizer: org.apache.cassandra.auth.CassandraAuthorizer roles_validity_in_ms: 0 permissions_validity_in_ms: 0 . . .
Puede configurar otros ajustes según sus requisitos. Si están comentados, descoméntelos.
Una vez terminado, guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.
Reinicie Cassandra para habilitar la configuración modificada.
$ sudo systemctl restart cassandra
5.1.1 – Agregar un superusuario administrador
Ahora que hemos habilitado la autenticación, necesitamos crear un usuario. Para hacer eso, usaremos la utilidad de shell Cassandra Command. Inicie sesión con las credenciales del usuario predeterminado cassandra.
$ cqlsh -u cassandra -p cassandra
Crear un nuevo superusuario. Reemplazar [username] y [yourpassword] con sus credenciales.
[email protected]> CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;
Cerrar sesión.
[email protected]> exit
Vuelva a iniciar sesión con la nueva cuenta de superusuario.
$ cqlsh -u username -p yourpassword
Elimine los permisos elevados de la cuenta predeterminada de Cassandra.
[email protected]> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false; [email protected]> REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;
Otorgue todos los permisos a la cuenta de superusuario.
[email protected]> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';
Cerrar sesión.
[email protected]> exit
5.2 – Editar el archivo de configuración de la consola
Si desea personalizar Cassandra Shell, puede hacerlo editando el archivo cqlshrc. La ubicación predeterminada del archivo es el directorio ~/.cassandra. Si desea cargarlo desde un directorio diferente, puede pasar el argumento –cqlshrc /customdirectory a la herramienta cqlsh mientras se ejecuta.
Puede encontrar un archivo de muestra en /etc/cassandra/conf/cqlshrc.sample que contiene todas las configuraciones que puede configurar con respecto a Cassandra Shell.
Copie y cambie el nombre del archivo de ejemplo al directorio ~/.cassandra.
$ sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc
Actualice el archivo cqlshrc con los permisos necesarios.
$ sudo chmod 600 ~/.cassandra/cqlshrc $ sudo chown $USER:$USER ~/.cassandra/cqlshrc
Abra el archivo para editarlo.
$ nano ~/.cassandra/cqlshrc
Configuraremos el shell para iniciar sesión automáticamente con las credenciales de superusuario. Busque la siguiente sección y complétela con su nombre de usuario y contraseña.
.... [authentication] ;; If Cassandra has auth enabled, fill out these options username = [superuser] password = [password] ....
Edite cualquier otra configuración que desee cambiar. Algunas de las configuraciones se comentan usando ;;. Descoméntelos eliminando los puntos y comas dobles y luego realice el cambio.
Una vez terminado, guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.
Inicie sesión en el shell de Cassandra con sus nuevos cambios.
$ cqlsh Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. [email protected]>
5.3 – Cambiar el nombre del clúster
Finalmente, cambiaremos el nombre del clúster de Grupo de prueba a su nombre elegido.
Inicie sesión en la terminal cqlsh.
$ cqlsh
Reemplace la [clustername] con su nuevo nombre de clúster en el siguiente comando.
[email protected]> UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
Salir de la concha
[email protected]> exit
Abra el archivo /etc/cassandra/conf/cassandra.yaml para editarlo.
$ sudo nano /etc/cassandra/conf/cassandra.yaml
Reemplace el valor de la variable cluster_name con el nombre de su elección.
... # The name of the cluster. This is mainly used to prevent machines in # one logical cluster from joining another. cluster_name: '[new_name]' ...
Una vez terminado, guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.
Borre el caché del sistema de Cassandra.
$ nodetool flush system
Reinicie Casandra.
$ sudo systemctl restart cassandra
Inicie sesión en el shell para ver el nuevo nombre.
$ cqlsh Connected to HowtoForge Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. [email protected]>
Conclusión
En este tutorial, aprendió a instalar Apache Cassandra en un servidor AlmaLinux o Rocky Linux. También aprendió cómo agregar autenticación de usuario y realizar algunas configuraciones básicas. Para obtener más información, visite la documentación oficial de Cassandra. Si tiene alguna pregunta, publíquela en los comentarios a continuación.