Cómo instalar Apache Cassandra en Ubuntu 18.04 LTS

27 feb 2021 5 min di lettura
Cómo instalar Apache Cassandra en Ubuntu 18.04 LTS
Indice dei contenuti

Introducción

Apache Cassandra es una base de datos NoSQL gratuita distribuida bajo una licencia de código abierto y optimizada para manejar grandes cantidades de datos. Proporciona escalabilidad lineal y alta disponibilidad sin comprometer el rendimiento. Apache Cassandra es utilizado por varias empresas que tienen grandes conjuntos de datos activos, incluidos Reddit, NetFlix, Instagram y Github.

En este artículo, explicaremos cómo instalar Apache Cassandra en Ubuntu.

Prerrequisitos

Las instrucciones asumen que ha iniciado sesión como root o usuario con privilegios de sudo.

Si su intención es instalar Apache Cassandra en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectarse al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Instalar Java

En el momento de escribir este artículo, la última versión estable de Apache Cassandra es 3.11 y requiere OpenJDK 8, que no está disponible en los repositorios oficiales de Ubuntu 18.04 LTS.

Habilitamos el repositorio AdoptOpenJDK e instalamos java.

Actualice la lista de paquetes e instale las dependencias necesarias para agregar un nuevo repositorio a través de HTTPS:

sudo apt update
sudo apt install apt-transport-https ca-certificates wget curl dirmngr gnupg software-properties-common

Importe la clave GPG del repositorio y agregue el repositorio APT AdoptOpenJDK a su sistema:

wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

Instale Java 8 ejecutando estos comandos:

sudo apt update
sudo apt install adoptopenjdk-8-hotspot

Una vez completado, verifíquelo imprimiendo la versión de Java:

java -version

La salida debería verse así:

openjdk version "1.8.0_232"
 OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_232-b09)
 OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.232-b09, mixed mode)

Instalar Apache Cassandra

Instalaremos Apache Cassandra usando el paquete deb del repositorio del proveedor. Para hacer esto, debe habilitar el repositorio de Apache Cassandra.

Agregue el repositorio de Cassandra a la lista de fuentes del sistema ejecutando el siguiente comando, actualmente la última versión estable es 311:

echo "deb http://www.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list

Importe la clave pública del repositorio con el siguiente curl

curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -

El comando anterior debería responder con OK. Esto significa que la clave se importó correctamente y los paquetes de este repositorio serán de confianza.

Actualice el índice del paquete e instale el paquete Apache Cassandra:

sudo apt update

Si encuentra un mensaje de error similar al siguiente:

GPG error: http://www.apache.org 311x InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A278B781FE4B2BDA

Agregue la clave pública Apache Cassandra así:

sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-key A278B781FE4B2BDA

Luego actualice la lista de paquetes nuevamente:

sudo apt update

En este punto puede instalar Cassandra:

sudo apt install cassandra

Una vez que se complete el proceso de instalación, el servicio Cassandra se iniciará automáticamente, de lo contrario, puede iniciar Cassandra con el siguiente comando:

sudo service cassandra start

Para verificar que Cassandra se esté ejecutando, escriba:

nodetool status

Debería ver un mensaje de salida similar al siguiente:

Datacenter: datacenter1
 =======================
 Status=Up/Down
 |/State=Normal/Leaving/Joining/Moving
 -- Address Load Tokens Owns (effective) Host ID Rack
 UN 127.0.0.1 103.67 KiB 256 100.0% 1d7218c2-6c7f-4287-9695-3d957572cdcf rack1

Si recibe un mensaje de error de conexión, abra el siguiente archivo:

sudo nano /etc/cassandra/cassandra-env.sh

Busque la siguiente línea:

...
 JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>"...

Quite el comentario y agregue la dirección IP pública de su servidor en lugar de <nombre público>.

Guarde y cierre el archivo presionando CTRL + X, seguido de Y para guardar los cambios y luego ENTER si está usando nano.

Reinicie Cassandra con el siguiente comando:

 sudo service cassandra restart

Para verificar que Cassandra se esté ejecutando, escriba:

nodetool status

Eso es todo. Apache Cassandra se instaló correctamente.

Configurar Apache Cassandra

Los datos de Apache Cassandra se almacenan en el /var/lib/cassandra. Los archivos de configuración se encuentran en /etc/cassandra y las opciones de inicio de Java se pueden configurar en el /etc/default/cassandra.

De forma predeterminada, Cassandra solo escucha en el host local. Si el cliente que se conecta a la base de datos se ejecuta en la misma computadora, no es necesario cambiar la interfaz de enlace.

Para interactuar con Cassandra a través de la línea de comandos, use la cqlsh proporcionada con el paquete Cassandra.

cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
 [cqlsh 5.0.1 | Cassandra 3.11.5 | CQL spec 3.4.4 | Native protocol v4]
 Use HELP for help.
 cqlsh>

Para salir de cassandra shell escriba exit:

exit

Cambiar el nombre del clúster de Apache Cassandra

De forma predeterminada, el clúster de Cassandra se denomina "Clúster de prueba". Si desea cambiarlo, siga estos pasos:

Acceda a la terminal Cassandra CQL con cqlsh:

cqlsh

Ingrese el siguiente comando para cambiar el nombre del clúster a "Noviello Cluster":

UPDATE system.local SET cluster_name = 'Noviello Cluster' WHERE KEY = 'local';

Cuando termine, escriba exit para salir de la terminal:

exit

Ahora necesita editar el cassandra.yaml ingresando el nombre del nuevo clúster, luego abra el archivo:

sudo nano /etc/cassandra/cassandra.yaml

Cambie el parámetro cluster_name por el nombre deseado:

cluster_name: 'Noviello Cluster'

Limpiar la caché del sistema:

nodetool flush system

Reinicie el servicio Cassandra ejecutando:

sudo systemctl restart cassandra

O con el siguiente comando:

 sudo service cassandra restart

Habilite las funciones de seguridad

Habilite la autenticación para el inicio de sesión del usuario.

Primero haga una copia de seguridad del archivo de configuración de Cassandra cassandra.yaml:

cp /etc/cassandra/cassandra.yaml /etc/cassandra/cassandra.yaml.backup

Abra el archivo de configuración de Cassandra:

sudo nano /etc/cassandra/cassandra.yaml

Haga coincidir las siguientes variables en el archivo con los valores que se muestran a continuación. Si alguno de los siguientes valores está comentado, descomente. Las propiedades restantes en el archivo de configuración deben establecerse de acuerdo con los requisitos específicos del proyecto y cómo planea usar Cassandra. La configuración predeterminada debería funcionar bien para el desarrollo.

...

 authenticator: org.apache.cassandra.auth.PasswordAuthenticator
 authorizer: org.apache.cassandra.auth.CassandraAuthorizer
 role_manager: CassandraRoleManager
 roles_validity_in_ms: 0
 permissions_validity_in_ms: 0...

Después de editar el archivo, reinicie Cassandra:

 sudo service cassandra restart
nodetool status

Agregar un superusuario administrativo

Atención, esta configuración solo funciona si se ha seguido la configuración del párrafo anterior.

Inicie sesión en el terminal de comando de Cassandra con las credenciales que se muestran a continuación para el usuario predeterminado "cassandra":

cqlsh -u cassandra -p cassandra

Cree un nuevo superusuario (superusuario). Reemplace new_user y YOUR_PASSWORD con la información deseada:

CREATE ROLE nuovo_utente WITH PASSWORD = 'TUA_PASSWORD' AND SUPERUSER = true AND LOGIN = true;

Salga escribiendo exit:

exit

Vuelva a iniciar sesión con la nueva cuenta de superusuario con las nuevas credenciales y elimine los permisos elevados de la cuenta de Cassandra:

cqlsh -u nuovo_utente -p TUA_PASSWORD
ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false;

Otorgue todos los permisos a la nueva cuenta de superusuario. Reemplaza new_user con el nombre del usuario que creaste:

GRANT ALL PERMISSIONS ON ALL KEYSPACES TO nuovo_utente;

Salga escribiendo exit:

exit

Conclusión

Le mostramos cómo instalar Apache Cassandra en Ubuntu 18.04 LTS y, opcionalmente, cambiar el nombre del clúster predeterminado. Para obtener más información sobre cómo comenzar con Cassandra, visite la página de documentación oficial.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.