Logo Studenta

Reporte de requisitos de instalación - Cassandra DB - OCHOA PRECIADO ENRIQUE DE JESUS

¡Este material tiene más páginas!

Vista previa del material en texto

Facultad de Ingeniería Electromecánica 
 
Reporte de requisitos 
Instalación de Cassandra DB 
 
Bases de Datos Avanzadas 
 
Presenta 
Enrique de Jesús Ochoa Preciado 
 
Profesor 
Rosales Busquets Enrique Carlos 
Manzanillo, Col., México, 25 de octubre de 2022 
 
 
Índice 
 
Instalando Cassandra 1 
Requisitos 2 
Seleccionando un método de instalación 3 
Utilizando Docker 3 
Utilizando binario Tarball 4 
Utilizando paquetes Debian 6 
Utilizando paquetes RPM 7 
Referencias 15 
1 
Instalando Cassandra 
 
Las instrucciones de instalación para instalar las versiones soportadas de 
Cassandra Apache en Linux Servers. Cassandra puede ser ejecutad en una 
variedad de distribuciones Linux, incluyendo (pero no limitándose solo a estas): 
- Ubuntu, más notablemente en las versiones LTS (16.04 o 18.04). 
- CentOS y RedHat Enterprise Linux (RHEL) incluyendo de la versión 6.6 a la 
7.7. 
- Amazon Linux AMIs incluyendo 2016.09 hasta Linux 2. 
- Versiones de Debian 8 y 9. 
- SUSE Enterpirse Linux 12. 
Se recomienda instalar versiones recientes, a no ser que ya se tenga experiencia 
en el manejo de versiones antiguas que ya se encuentren en producción. 
 
2 
Requisitos 
 
- Instalar la última versión de Java 8 o Java 11, ya sea Oracle Java Standard 
Edition 8 / Oracle Java Standard Edition 11 (Long Term 
Support) or OpenJDK 8 / OpenJDK 11. Para verificar la versión de java se 
debe de ejecutar java -version. 
- Para usar CQL se necesita la versión más reciente de Python (3.6+) o, en su 
defecto, Python 2.6 (con soporte limitado). Para verificar la versión de Python, 
se puede escribir en la consola python –-version. 
 
http://www.oracle.com/technetwork/java/javase/downloads/index.html
http://www.oracle.com/technetwork/java/javase/downloads/index.html
http://www.oracle.com/technetwork/java/javase/downloads/index.html
http://www.oracle.com/technetwork/java/javase/downloads/index.html
http://openjdk.java.net/
http://openjdk.java.net/
3 
Seleccionando un método de instalación 
 
Existen 3 métodos de instalación de Cassandra que son los más habituales: 
- Docker 
- Archivo binario tarball 
- Instalación de paquete (RPM, YUM) 
Si ya eres un usuario de Docker, solo se debe de instalar Docker para Mac, Windows 
o Linux, Instala la imagen correcta e inicia Cassandra con el comando run. 
Para la mayoría de los usuarios, instalar el binario tarball es una opción simple. El 
comprimido de Tarball contiene todo lo necesario en una sola ubicación con los 
binarios y los archivos de configuración ubicados en sus propios subdirectorios, el 
atributo principal de Tarball es que no requiere de los permisos root y puede ser 
instalado en cualquier distribución de Linux. 
Las instalaciones por paquete sí requieren permisos root, y son más apropiadas 
para producción. Instalar el RPM en CentOS y distribuciones basadas en RHEL si 
se quiere usar YUM para instalar Cassandra. En Debian se puede instalar el 
paquete utilizando APT. Tanto YUM como APT requieren permisos root, e instalarán 
los binarios y los archivos de configuración como usuario de Cassandra del SO. 
Utilizando Docker 
 
Hacer el pull del archivo Docker, se debe de ejecutar la siguiente consulta: 
docker pull cassandra:latest 
El comando pull de docker consultará la versión más reciente de Cassandra Apache 
disponible en Dockerhub. 
 Se puede iniciar Cassandra con el comando docker run: 
docker run –-name cass_cluster cassanda:latest 
4 
La opción de –-name debe de ser el nombre de nuestro cluster de Cassandra 
creado. 
 Inicia CQL Shell, cqlsh para interactuar con el nodo de Cassandra creado: 
docker exec -it cass_cluster cqlsh 
 
Utilizando binario Tarball 
 
Primero se verifica la instalación de Java con el comando java -version. Nos 
dará un resultado como el siguiente: 
openjdk version "1.8.0_222" 
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-
1ubuntu1~16.04.1-b10) 
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode) 
Se descarga el Tarball desde uno de los links de Apache Cassandra Download: 
$ curl -OL 
http://apache.mirror.digitalpacific.com.au/cassandra/4.0.0/apache-
cassandra-4.0.0-bin.tar.gz 
OPCIONAL: Verificar la integridad de la descarga del tarball usando uno de los 
métodos aquí. Por ejemplo, para verificar el hash del archivo descargado se puede 
utilizar GPG: 
gpg –-print-md SHA256 apache-cassandra-4.0.0-bin.tar.gz 
Comparar la firma con el archivo SHA256 del sitio de descargas: 
$ curl -L https://downloads.apache.org/cassandra/4.0.0/apache-
cassandra-4.0.0-bin.tar.gz.sha256 
 
http://apache.mirror.digitalpacific.com.au/cassandra/4.0.0/apache-cassandra-4.0.0-bin.tar.gz
http://apache.mirror.digitalpacific.com.au/cassandra/4.0.0/apache-cassandra-4.0.0-bin.tar.gz
https://www.apache.org/dyn/closer.cgi#verify
https://downloads.apache.org/cassandra/4.0.0/apache-cassandra-4.0.0-bin.tar.gz.sha256
https://downloads.apache.org/cassandra/4.0.0/apache-cassandra-4.0.0-bin.tar.gz.sha256
5 
Descomprimimos el tarball: 
$ tar xzvf apache-cassandra-4.0.0-bin.tar.gz 
Los archivos deberían de hacer extraídos en el directorio apache-cassandra-4.0.0/ 
Esta es la ubicación del tarball. 
Dentro del directorio se encontrarán los scripts, binarios, utilidades, configuración y 
archivos de log: 
 
1. Ubicación de los comandos para ejecutar cassandra, cqlsh, nodetool y las 
herramientas de SSTable. 
2. Ubicación de cassandra.yaml y otros archivos de configuración. 
3. Ubicación de los logs, hints y SSTables. 
4. Ubicación del sistema y de los logs de debug. 
5. Ubicación de la herramienta cassandra-stress. 
Para saber información sobre cómo configurar, se puede revisar aquí. 
Para iniciar Cassandra: 
$ cd apache-cassamdra-4.0.0/ && bin/cassandra 
Para monitorear el progreso de inicio de Cassandra: 
$ tail -f logs/System.log 
http://cassandra.apache.org/doc/latest/getting_started/configuring.html
6 
Para revisar el estado de Cassandra: 
$ bin/nodetool status 
El estado de la columna de salida debería ser UN (Up/Normal). 
Alternativamente, conecta con la base de datos con: 
$ bin/cqlsh 
 
Utilizando paquetes Debian 
 
Comprobamos de la misma manera el estado de java con el comando que ya hemos 
utilizado (java -version) y procedemos a añadir el repositorio de Cassandra. La 
mayor y última versión es la 4.0 y corresponde al nombre de distribución 40x (donde 
la X es un sufijo). Para versiones antiguas se puede utilizar 311x para C*3.11 series, 
30x para la versión 30, 22x para la versión 22 y 21x para la versión 21. Por ejemplo, 
si añadiéramos la versión 4.0 el comando sería el siguiente: 
$ echo “deb https://debian.cassandra.apache.org 41x main” | sudo 
tee -a /etc/apt/sources.list.d/cassandra.sources.list 
deb https://debian.cassandra.apache.org 41x main 
Se deben añadir las llaves del repositorio de Apache Cassandra a la lista de llaves 
verificadas del servidor: 
$ curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key 
add – 
Ejecutamos un Update de los recursos del sistema: 
sudo apt-get update 
 
https://debian.cassandra.apache.org/
https://debian.cassandra.apache.org/
https://downloads.apache.org/cassandra/KEYS
7 
E instalamos cassandra con APT: 
Sudo apt-get install cassandra 
Podemos monitorear el progreso de inicio con el comando que utilizamos en docker: 
$ tail -f logs/System.log 
Revisamos el estado de Cassandra: 
nodetool status 
Si el reporte de status da como saluda UN (Up/Normal) podemos ejecutar el 
comando de conexión a la base de datos con: 
cqlsh 
 
Utilizando paquetes RPM 
 
Verificamos la versión de Java con el comando java -version y posteriormente 
añadiremos el repositorio de Cassandra al archivo /etc/yum.repos.d/cassandra.repo 
(como usuario root). . La mayor y última versión es la 4.0 y corresponde al nombre 
de distribución 40x (donde la X es un sufijo). Para versiones antiguas se puede 
utilizar 311x para C*3.11 series, 30x para la versión 30, 22xpara la versión 22 y 21x 
para la versión 21. Por ejemplo, si añadiéramos la versión 4.0 el comando sería el 
siguiente: 
 
 
 
8 
Hacemos un Update del sistema: 
$ sudo yum update 
E instalamos Cassandra con YUM: 
$ sudo yum install cassandra 
Nota: Se creará un nuevo usuario de Linux llamado cassandra como parte de la 
instalación. El servicio de Cassandra deberá ejecutarse con este usuario. 
Inicializamos el servicio: 
$ tail -f logs/system.log 
Para saber cómo configurar Cassandra, se puede revisar aquí. 
Checamos el status: 
$ nodetool status 
Si obtenemos de salida la respuesta UN (Up/Normal) ejecutaremos la conexión a 
la base de datos con: 
$ cqlsh 
 
 
https://cassandra.apache.org/doc/latest/cassandra/getting_started/configuring.html
9 
Usando la Consola de Cassandra 
CQLSH es la consola que nos permite interactuar con Cassandra. Esta consola 
utiliza CQL (Cassandra Query Language), este lenguaje es muy similar a 
SQL, por lo tanto, es más fácil empezar con este sistema si ya tienenes un 
poco de experiencia con SQL. CQLSH viene integrada con cualquier paquete 
de Cassandra y ya debería estar disponible cuando instalas Cassandra. 
 
Crear un Keyspace 
Como vimos en la definición, el keyspace es la capa exterior donde se 
almacena toda la información. Por lo tanto, debemos crear uno antes de 
guardar cualquier información. Para crear uno escribimos la siguiente 
consulta: 
 
# cqlsh localhost -e "CREATE KEYSPACE IF NOT EXISTS keyspace1 WITH 
replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND 
durable_writes = true;" 
En la consulta que acabamos asumire que tienes Cassandra corriendo bajo 
localhost sin autenticación. De la misma manera, creamos una nueva keyspace 
llamada keyspace1 con las polizas de replicación y durable_writes. 
 
Si tienes definida la autenticación puedes ejecutar la siguiente consulta: 
 
# cqlsh -u -p localhost -e "CREATE KEYSPACE IF NOT EXISTS keyspace1 WITH 
replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND 
durable_writes = true;" 
Asegurate de cambiar por tu nombre de usuario y por tu contraseña. 
 
10 
Escribir consultas donde debemos conectarnos al servidor al principio y 
definir nuestras credenciales (usuario y contraseña en caso de que las 
hayamos definido) es un poco molesto. Para evitar esto podemos primero 
conectanos al servidor y después ya solamente escribir las consultas. 
 
# cqlsh -u -p localhost 
 
Connected to Test Cluster at 127.0.0.1:9042. 
 
[cqlsh 5.0.1 | Cassandra 3.9 | CQL spec 3.4.2 | Native protocol v4] 
 
Use HELP for help. 
 
cassandra@cqlsh> CREATE KEYSPACE IF NOT EXISTS keyspace1 WITH replication 
= {'class': 'SimpleStrategy', 'replication_factor': '1'} AND 
durable_writes = true; 
 Para el resto de las consultas estaremos usando el método de arriba ya 
que es más fácil y rápido. 
 
Antes de realizar cualquier otra cosa, debemos decirle a CQLSH en que 
keyspace vamos a trabajar. Para esto corremos la siguiente consulta. 
 
cassandra@cqlsh> USE keyspace1; 
cassandra@cqlsh:keyspace1> 
11 
Si lo notaste, una ves que le decimos a CQLSH que keyspace vamos a usar, 
en la siguiente linea aparece el nombre del keyspace. Esto quiere decir 
que ingresamos al keyspace correctamente. 
 
El replication_factor establece cuántas copias de la información será 
guardada (asumiendo que tengas los servidores disponibles para almacenar 
este número de copias). Este factor puede ser modificado a lo que tu 
gustes. 
 
cassandra@cqlsh:keyspace1> ALTER KEYSPACE "keyspace1" WITH REPLICATION = 
{ 'class' : 'SimpleStrategy', 'replication_factor' : 3 }; 
 Crear y Alterar una Tabla 
Una tabla es el equivalente a un column familiy en Cassandra. Cassandra 
tiene soporte para una gran cantidad de diversos tipo de datos, puedes ver 
una lista completa aquí. Para crear una table simplemente ejecutamos la 
consulta CREATE TABLE. 
 
cassandra@cqlsh:keypace1> CREATE TABLE persona ( 
 id text, 
 nombre text, 
 apellido text, 
 PRIMARY KEY (id)); 
Para verificar que la tabla haya sido creada ejecutamos la consulta 
DESCRIBE. 
 
cassandra@cqlsh:keypace1> DESCRIBE persona; 
 
12 
CREATE TABLE keyspace1.persona ( 
 id text PRIMARY KEY, 
 nombre text, 
 apellido text 
) WITH bloom_filter_fp_chance = 0.01 
 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} 
 AND comment = '' 
 AND compaction = {'class': 
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 
'max_threshold': '32', 'min_threshold': '4'} 
 AND compression = {'chunk_length_in_kb': '64', 'class': 
'org.apache.cassandra.io.compress.LZ4Compressor'} 
 AND crc_check_chance = 1.0 
 AND dclocal_read_repair_chance = 0.1 
 AND default_time_to_live = 0 
 AND gc_grace_seconds = 864000 
 AND max_index_interval = 2048 
 AND memtable_flush_period_in_ms = 0 
 AND min_index_interval = 128 
 AND read_repair_chance = 0.0 
 AND speculative_retry = '99PERCENTILE'; 
Ahora digamos que queremos modificar la tabla y agregar el campo de correo. 
Para esto podemos utilizar la consulta ALTER. 
 
cassandra@cqlsh:keypace1> ALTER TABLE persona ADD correo text; 
13 
cassandra@cqlsh:keypace1> DESCRIBE persona; 
 
CREATE TABLE keyspace1.persona ( 
 id text PRIMARY KEY, 
 correo text, 
 nombre text, 
 apellido text 
) WITH bloom_filter_fp_chance = 0.01 
 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} 
 AND comment = '' 
 AND compaction = {'class': 
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 
'max_threshold': '32', 'min_threshold': '4'} 
 AND compression = {'chunk_length_in_kb': '64', 'class': 
'org.apache.cassandra.io.compress.LZ4Compressor'} 
 AND crc_check_chance = 1.0 
 AND dclocal_read_repair_chance = 0.1 
 AND default_time_to_live = 0 
 AND gc_grace_seconds = 864000 
 AND max_index_interval = 2048 
 AND memtable_flush_period_in_ms = 0 
 AND min_index_interval = 128 
 AND read_repair_chance = 0.0 
 AND speculative_retry = '99PERCENTILE'; 
Insertar Información 
14 
Para insertar información podemo usar la consulta INSERT. 
 
cassandra@cqlsh:keypace1> SELECT * FROM person; 
 
 id | correo | nombre | apellido 
----+--------+--------+--------- 
 
(0 rows) 
cassandra@cqlsh:keypace1> INSERT INTO persona (id, nombre, apellido, 
correo) VALUES ('001', 'Juan', 'Martinez', 'juan123@yahoo.com'); 
cassandra@cqlsh:keypace1> SELECT * FROM persona; 
 
 id | correo | nombre | apellido 
-----+-----------------------------+---------+---------- 
 001 | juan123@yahoo.com | Juan | Martinez 
Ahora digamos que queremos actualizar el correo electrónico de Juan. 
Podemos usar UPDATE. 
 
cassandra@cqlsh:keypace1> UPDATE persona SET correo = 'juan321@gmail.com' 
WHERE id = '001'; 
cassandra@cqlsh:keypace1> SELECT * FROM persona; 
 
 id | correo | nombre | apellido 
-----+-----------------------------+---------+---------- 
 001 | juan321@gmail.com | Juan | Martinez 
15 
Referencias 
- https://cassandra.apache.org/doc/latest/cassandra/getting_started/configuri
ng.html 
- 1 nuevo mensaje (mejorcodigo.net) 
 
 
 
https://cassandra.apache.org/doc/latest/cassandra/getting_started/configuring.html
https://cassandra.apache.org/doc/latest/cassandra/getting_started/configuring.html
https://cursos.mejorcodigo.net/article/lo-basico-de-apache-cassandra-cql-y-cqlsh-57

Continuar navegando