102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

26
Bases de datos NoSQL Parte III: Práctica sobre Apache Cassandra Roberto Amor Marcos Bases de Datos Avanzadas

Transcript of 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Page 1: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Bases de datos NoSQLParte III: Práctica sobre Apache Cassandra

Roberto Amor Marcos

Bases de Datos Avanzadas

Page 2: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Contenidos

Requisitos y material

Instalación

El framework Easy-Cassandra

Bibliografía

Page 3: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Requisitos y materialElementos necesarios para realizar la práctica:

Java 1.6 o 1.7 (Java JDK 6 o 7)http://www.oracle.com/technetwork/java/javase/downloads/index.html

Apache Cassandra 1.0.6-bin (no usar 1.0.8!!! bug en Windows)http://archive.apache.org/dist/cassandra/1.0.6/apache-cassandra-1.0.6-bin.tar.gz

XAMMP for Windows (u otro gestor que incluya Apache Web Server) - Opcional (necesario para Cassandra Cluster Admin)

http://www.apachefriends.org/en/xampp-windows.html

Cassandra Cluster Admin - Opcional pero recomendadohttps://github.com/sebgiroux/Cassandra-Cluster-Admin/zipball/master

Eclipsehttp://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2

Easy-Cassandra with Dependenceshttps://github.com/downloads/otaviojava/Easy-Cassandra/EasyCassandra-1.0.8-With_Depencence.rar

Page 4: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

InstalaciónUna vez instalada la última versión de Java JDK hay que añadir una variable de entorno con el JAVA_HOME.

WinXP : Propiedades de MiPC

Page 5: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

InstalaciónUna vez instalada la última versión de Java JDK hay que añadir una variable de entorno con el JAVA_HOME.

Win7 : Propiedades de Equipo >Configuración avanzada del

sistema

Page 6: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

InstalaciónUna vez instalada la última versión de Java JDK hay que añadir una variable de entorno con el JAVA_HOME.

Page 7: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

InstalaciónUna vez instalada la última versión de Java JDK hay que añadir una variable de entorno con el JAVA_HOME.

Normalmente instalado en C:\Archivos de programa\Java\jdk1.{version}.0_{revision}

Page 8: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

InstalaciónUna vez instalada la última versión de Java JDK hay que añadir una variable de entorno con el JAVA_HOME.

Probar la definición de la variable desde el cmdecho %JAVA_HOME%

Page 9: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Instalación

Descomprimir Cassandra en C:\Cassandra

Abrir C:\Cassandra/conf/cassandra.yaml

Reconfigurar la ruta de data_file_directories, commitlog_directory y saved_caches_directory

Abrir C:\Cassandra/conf/cassandra-env.sh

Reducir el tamaño del HEAP de Java por (y descomentar la línea!!):

MAX_HEAP_SIZE=”1GB”

HEAP_NEWSIZE=”800MB”

Page 10: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Instalación

Descomprimir Cassandra en C:\Cassandra

Abrir C:\Cassandra/conf/cassandra.yaml

Reconfigurar la ruta de data_file_directories, commitlog_directory y saved_caches_directory

Abrir C:\Cassandra/conf/cassandra-env.sh

Reducir el tamaño del HEAP de Java por (y descomentar la línea!!):

MAX_HEAP_SIZE=”1GB”

HEAP_NEWSIZE=”800MB”

Page 11: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

InstalaciónDesde el cmd ir a la ruta C:\Cassandra/bin y ejecutar:

cassandra -f

Page 12: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

InstalaciónDesde el cmd ir a la ruta C:\Cassandra/bin y ejecutar:

cassandra -f

Page 13: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

InstalaciónUna vez conectados crear un keyspace de prueba con:

create keyspace practicaCassandra;

Y asignar la conexión actual al nuevo keyspace:

use practicaCassandra;

Page 14: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Instalación

XAMPP normalmente se instala en C:\XAMPP

Crear una carpeta dentro de C:\XAMPP\htdocs (esta es la carpeta de los ficheros web) llamada cca

Descomprimir el contenido de sebgiroux-Cassandra-Cluster-Admin en cca

Activar el servidor Apache desde el Panel de Control de XAMPP

Probar la instalación accediendo desde el navegador:

http://localhost/cca

Page 15: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Instalación

XAMPP normalmente se instala en C:\XAMPP

Crear una carpeta dentro de C:\XAMPP\htdocs (esta es la carpeta de los ficheros web) llamada cca

Descomprimir el contenido de sebgiroux-Cassandra-Cluster-Admin en cca

Activar el servidor Apache desde el Panel de Control de XAMPP

Probar la instalación accediendo desde el navegador:

http://localhost/cca

Page 16: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Instalación

XAMPP normalmente se instala en C:\XAMPP

Crear una carpeta dentro de C:\XAMPP\htdocs (esta es la carpeta de los ficheros web) llamada cca

Descomprimir el contenido de sebgiroux-Cassandra-Cluster-Admin en cca

Activar el servidor Apache desde el Panel de Control de XAMPP

Probar la instalación accediendo desde el navegador:

http://localhost/cca

Page 17: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Instalación

XAMPP normalmente se instala en C:\XAMPP

Crear una carpeta dentro de C:\XAMPP\htdocs (esta es la carpeta de los ficheros web) llamada cca

Descomprimir el contenido de sebgiroux-Cassandra-Cluster-Admin en cca

Activar el servidor Apache desde el Panel de Control de XAMPP

Probar la instalación accediendo desde el navegador:

http://localhost/cca

Page 18: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Instalación

Descomprimir donde se quiera todos los .jar contenidos en el .rar de “Easy-Cassandra with Dependences”

En Eclipse crear un nuevo proyecto Java y añadir todas las librerías descomprimidas desde:

Build Path>Configure Build Path...>Libraries>Add External JARs...

Page 19: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Easy-Cassandra

Easy-Cassandra es un framework para trabajar con Cassandra desde el lenguaje de alto nivel Java.

Aprovecha las propiedades orientadas a objetos de Java para relacionar clase con ColumnFamily.

Cada clase se corresponde con una familia de columnas.

Cada atributo se corresponde con una columna.

Un atributo especial se declara como KEY para Cassadra.

Page 20: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Easy-Cassandra

Para una correcta sincronización entre los tipos de dato string (UTF-8 o Hexadecimal) hay que indicar a Cassandra cómo queremos que estén codificadas nuestras familias de columnas.

create column family GroupInvitation with comparator = UTF8Type and column_metadata = [{column_name: iduser, validation_class: UTF8Type},{column_name: idgroup, validation_class: UTF8Type},{column_name: text, validation_class: UTF8Type},{column_name: created, validation_class: UTF8Type}];

Page 21: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Easy-Cassandra

Se utilizan metadatos o anotaciones en las clases Java a las que se van a dar persistencia.

@ColumnFamilyValue(name = "Persona")public class Persona implements Serializable {...}

@ColumnValue(name = "edad") private Integer edad;

@IndexValue @ColumnValue(name = "nombre") private String nombre;

@KeyValue(auto=false)private Long id;

Page 22: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Easy-Cassandra

Para obtener una conexión hacia la base de datos hay que crear un enlace mediante la clase Persistence

Persistence persistence;persistence = EasyCassandraManager.getPersistence("keyspace", "localhost", 9160);

Page 23: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Easy-Cassandra

boolean success = persistence.insert(object);

boolean success = persistence.delete(object);

boolean success = persistence.deleteByKeyValue(rowKey, Persona.class);

boolean success = persistence.update(object);

Una vez realizada la conexión, el objeto persistance ofrece los siguientes métodos para la manipulación de los datos.

Comandos de actualización

Page 24: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Easy-Cassandra

List<Persona> list =persistence.findAll(Persona.class);List<Persona> list =persistence.findAll(Persona.class, 15000);

Persona result=(Persona)persistence.findByKey(idValue, Persona.class);

List<Persona> list=persistence.findByKeyIn(Persona.class,1,4,8);

Long numberOfRow=persistence.count(Persona.class);

Una vez realizada la conexión, el objeto persistance ofrece los siguientes métodos para la manipulación de los datos.

Comandos de consulta

Page 25: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra

Easy-Cassandra

Easy-Cassandra ofrece un segundo modo de manipulación de los datos en Cassandra: ejecutando directamente sentencias CQL.

Pueden realizarse de manera independiente a la estructura de objetos de la aplicación.

Pueden aparecer algunos problemas entre los tipos string.

boolean persistence.executeUpdateCql(String query);

List<Map<String, String>> result=persistence.executeCql(String SelectQuery);