Tabla de Contenidos
1. Introducción
Casandra es un sistema de administración de bases de datos de código abierto distribuido con una amplia memoria de columna y una base de datos NoSQL que puede procesar grandes cantidades de datos en muchos servidores estándar sin un solo punto de falla. Fue creado por Apache Software Foundation y está escrito en Java. En este artículo, veremos paso a paso cómo instalar Cassandra en CentOS 7 Linux.
2. Requisitos
Todos los comandos que se dan a continuación deben ejecutarse como root
o sudo
Usuario.
2.1. Instalar Python 2.7
Python 2.7 está preinstalado en CentOS 7. Si por alguna razón falta, puedes instalarlo con el siguiente comando:
# yum -y install python
# python --version Python 2.7.5
2.2. Instalar Java
Utilice los siguientes comandos para instalar la última versión de Java 8 y verificar la instalación.
# yum install java-1.8.0-openjdk-devel
# java -version
Salida de muestra:
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)
3. Cómo instalar Cassandra
Primero, agreguemos el repositorio de Cassandra. Para hacer esto, cree un archivo llamado cassandra.repo
debajo /etc/yum.repos.d/
Directorio:
# vi /etc/yum.repos.d/cassandra.repo
Agrega las siguientes líneas:
[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
prensa ESC Clave y tipo :wq
para guardar y cerrar el archivo.
Verifique que se haya agregado el repositorio de Cassandra. El siguiente comando asegura los repositorios instalados y activados:
# yum repolist
Después de agregar el repositorio, ejecute el siguiente comando para instalar Cassandra en su sistema CentOS:
# yum -y install cassandra
Activar e iniciar el servicio Cassandra:
# systemctl enable cassandra
cassandra.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig cassandra on
# systemctl start Cassandra
Asegurar el estado de Cassandra:
# systemctl status cassandra
Utilice el siguiente comando para obtener los detalles del clúster, como el estado, la utilización y los ID:
# nodetool status
Salida de muestra:
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 69.08 KiB 16 100.0% bf2df7a9-54bc-41c9-8c6c-0b9322d10e71 rack1
En la edición,
- A – Alto y normal
- Dirección – dirección IP del nodo
- carga – Después de excluir todo el contenido en el subdirectorio «Instantáneas», la cantidad de datos del sistema de archivos en el directorio de datos de Cassandra. Se actualiza una vez cada 90 segundos.
- Simbólico – La cantidad de tokens asignados al nodo.
- Posee – Cuántos datos tiene el nodo; un nodo puede poseer el 33% del anillo, pero mostrar el 100% si el factor de replicación es 3.
- ID de host – ID de red del host
- cuadro – Rack del nodo donde existe.
4. Cqlsh – CLI para Cassandra
cqlsh es una interfaz de línea de comandos para usar CQL para conectarse a Cassandra (Cassandra Query Language). Se incluye en todos los paquetes de Cassandra y se puede encontrar junto con el archivo ejecutable de Cassandra. bin/
Directorio. El controlador del protocolo Python nativo se utiliza para implementar cqlsh que se conecta a un solo nodo.
Para iniciar la ejecución de Cqlsh:
# cqlsh
Salida de muestra:
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. cqlsh>
5. Ejemplos de comandos CQL
5.1. Crear espacio clave
En Cassandra, un espacio de claves sirve como un contenedor de datos, similar a una base de datos en los sistemas de administración de bases de datos relacionales (RDMBS)
cqlsh> CREATE KEYSPACE IF NOT EXISTS OsTechNix WITH REPLICATION = 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 ; cqlsh>
Verifique los espacios clave en el sistema usando los comandos a continuación.
cqlsh> SELECT * FROM system_schema.keyspaces;
Para ver todos los espacios clave, haga lo siguiente:
cqlsh> desc keyspaces;
Se enumeran todos los espacios clave del clúster:
ostechnix system_auth system_schema system_views system system_distributed system_traces system_virtual_schema
5.2. Cree una tabla e inserte datos de muestra
Puede utilizar el … CREATE TABLE
Declaración que define los tipos de datos para cada columna como lo hacemos normalmente en RDBMS. Los datos se almacenan en tablas CQL con filas de columnas, similar a las definiciones de SQL.
Necesita definir ‘claves primarias’ y otros campos de datos para crear una tabla. Siga el ejemplo de construcción de tablas a continuación.
cqlsh> CREATE TABLE ostechnix.sample_table ( id UUID PRIMARY KEY, name text, birthday timestamp, nationality text, weight text, height text );
cqlsh>
Utilizar el INSERT
Instrucción para insertar datos simples en la tabla ostechnix.sample_table
que creamos arriba. En este ejemplo a continuación, se agregan dos registros a la tabla.
cqlsh> INSERT INTO ostechnix.sample_table (id, name, nationality) VALUES (5b6962dd-3f90-4c93-8f61-eabfa4a803e2, 'KARTHICK', 'Indian');
cqlsh> INSERT INTO ostechnix.sample_table (id, name, nationality, weight) VALUES (5b6962dd-3f90-4c93-8f61-eabfa4a804e3, 'MOHAN', 'Indian', '85');
5.3. Consultar la tabla
Utilice la instrucción SELECT para devolver una o más filas de una tabla.
cqlsh> SELECT * FROM ostechnix.sample_table;
Aquí, *
devuelve todos los datos de la tabla.
cqlsh> SELECT * FROM ostechnix.sample_table WHERE weight="85";
Salida de muestra:
InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING" cqlsh>
Cassandra no ejecuta una consulta que no contiene valores para todas las columnas de la clave principal en el ‘where
‘Cláusula y emite la advertencia de error anterior para su uso 'ALLOW FILTERING'
.
La razón de este error es que Cassandra no puede identificar el nodo que tiene los resultados requeridos si la clave de partición completa no está en el archivo. WHERE
Cláusula. Como resultado, Cassandra tiene que escanear todo el conjunto de datos en cada nodo para asegurarse de que se hayan identificado los datos relevantes.
cqlsh> SELECT * FROM ostechnix.sample_table WHERE weight="85" ALLOW FILTERING;
6. Resumen
En este artículo, analizamos los procedimientos de instalación de Cassandra y algunos comandos CQL de muestra. Veremos en profundidad la Operación Cassandra en los próximos artículos.
Recursos: