102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra
Transcript of 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra
![Page 1: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/1.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/2.jpg)
Contenidos
Requisitos y material
Instalación
El framework Easy-Cassandra
Bibliografía
![Page 3: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/7.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/22.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/23.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/24.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/25.jpg)
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);
![Page 26: 102891461 NoSQL Instalacion y Puesta en Marcha de Apache Cassandra](https://reader034.fdocuments.ec/reader034/viewer/2022050801/552ef31d4a7959b95b8b4a92/html5/thumbnails/26.jpg)
Referencias
http://cloud.github.com/downloads/otaviojava/Easy-Cassandra/UserGuide-EasyCassandra_002.pdf - Easy-Cassandra User Guide.