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

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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *