Descarga la aplicación para disfrutar aún más
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
Compartir