Vous êtes sur la page 1sur 36

uc

UNIVERSIDAD DE CANTABRIA

Bases de Datos Avanzadas

Bases de datos NoSQL


Parte III: Prctica sobre Apache Cassandra

Roberto Amor Marcos

Contenidos

Requisitos y material Instalacin

El framework Easy-Cassandra

Bibliografa

Requisitos y material

Elementos necesarios para realizar la prctica:

Java 1.6 o 1.7 (Java JDK 6 o 7)

h t t p ://ww w.oracle.com/t echnetwork/j ava/j avase/d ownloads/ind ex.html

Apache Cassandra 1.0.6-bin (no usar 1.0.8!!! bug en Windows)

h t t p ://a rchive.apache.org/d ist/c assandra/1.0.6/ap ache-cassandra-1.0.6-bin.tar.gz

XAMMP for Windows (u otro gestor que incluya Apache

Web Server) - Opcional (necesario para Cassandra Cluster Admin)

h t t p ://ww w.apachefriends.org/en/x ampp-windows.html

Cassandra Cluster Admin - Opcional pero recomendado



h t t p s ://g ithub.com/s ebgiroux/Cas sandra-Cluster-Admin/zip ball/m aster

Eclipse
h t t p ://ww w.eclipse.org/d ownloads/p ackages/ec lipse-ide-java-ee-developers/ind igosr2

Easy-Cassandra with Dependences

h t t p s ://g ithub.com/d ownloads/o taviojava/E asy-Cassandra/E asyCassandra-1.0.8With_Depencence.rar

Instalacin

Una vez instalada la ltima versin de Java JDK hay que aadir una variable de entorno con el JAVA_HOME.
Propiedades del sistema

Restaurar sistema Actualizacionesautomticas General Nombrede equipo Hardware f. .. .. ..g..~.

?. ~ ~.~.. . ~.~.~.~.~ ~~~. ....J

Remoto

Debe iniciarla sesin como un Administradopr ara hacer la mayorade los cambios. Rendimiento--==============-===="""""===11 Efectos visuales, programacindel procesador, uso de memoriay memoriavirtual ~onfiguracin Perfilesde usuario---------------------.., Configuarcin del escritoriorelacionada con su iniciode sesin C.Qnfigaucrin Inicioy recuperacin---------------------,' Iniciode sistema, errorde sistema e informacinde depuracin Configuarcin

WinXP : Propiedades de MiPC

' Y .ariablesde .

entorno

informede errores

Aceptar

Cancelar

Instalacin

Una vez instalada la ltima versin de Java JDK hay que aadir una iable de entorno con el JAVA_HOME. vconatrorl
1I

Panel de control

Sistema

entana principal del Panel de

ropiedades de

i e

dministrador de dispositi os Configuracin de cceso remoto Proteccin del sistema Configuracin avanzada del sistema

Nom brede equipo Opciones avanzadas Protecc in del

Hard 'are J Accesoremoto

----

sistema Para realizar la m ayor a de estos cambios. inicie sesin com o administrador. Rendimiento 8edos visuales. programacin del procesador. uso de memoriay memoriavirtual [ Conf igurac in... ] Perfilesde usuario Conf iguracin del escritoriocorrespondiente al inicio de sesin Conf iguracin... Inicio y recuperacin Inicio del sistema. errores del sistema e informacin de depuracin ,80 GHz

Win7 :

Propiedad

es de Equipo > Configuracin avanzada del sistema

Configuracin... Variables de entom o ... eptar

le para esta pantalla

)!

Cancelar

)!

rcar

Instalacin

Una vez instalada la ltima versin de Java JDK hay que aadir una variable de entorno con el JAVA_HOME.
Variables de entorno Variables de usueno para Jorge Ruiz Variable TEMP TMP

Valor C: \Docum ents end Settings\Jorge RUiz\ . C: \D oc uments end Settings\Jorge Ruiz\ .

Mueva Variables del ~istema Variable N ur'''1B E R OF F '" , Path PATHEXT PRO CESSOR_A ...

Modificar

Eliminar

OS

Valor 2 Windows_NT C :\WINDOW S\sy stem 32;C : \ WINDOW Sj . .COM; .EXEj BAT; .CMDj VBSj VBEj JS; ....

x86
Nuey_a MOQificar ~liminar

Aceptar

Cancelar

Instalacin

Una vez instalada la ltima versin de Java JDK hay que aadir una variable de entorno con el JAVA_HOME.

Nueva variable del sistem a

Mom brede variable: ~alor de variable:

JAVA_HOME

C:\Archivos de programa \Jav a\jdk1. 6. 0_1E Aceptar Cancelar

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

Instalacin

Una vez instalada la ltima versin de Java JDK hay que aadir una variable de entorno con el JAVA_HOME.

Probar la definicin de la variable desde el cmd echo %JAVA_HOME%

Instalacin
Descomprimir Cassandra en C:\Cassandra Abrir C:\Cassandra/c onf/c assandra.yaml Reconfigurar la ruta de data_file_directories, Abrir C:\Cassandra/c onf/c assandra-env.sh Reducir el tamao del HEAP de Java por (y
descomentar la lnea!!): commitlog_directory y saved_caches_directory

MAX_HEAP_SIZE=1GB HEAP_NEWSIZE=800MB

Instalacin
Descomprimir Cassandra en C:\Cassandra Abrir C:\Cassandra/c onf/c assandra.yaml
au Reconfig iraiornelras arud

See

://wii.a,ac e org/cassandra/Opera r o e n

ta d eseldecaitona. _file_directories,
~.RandomPar i~ioner

ions tor more o

commitdlireoc ire cCatssaond sId as voree gor_ieds dda_acoacdihs.es_directory ree rrays yo

par i ioner~ org a ac.e.cassandra.d

Abrir C:\Cassandra/c onf/c assandra-env.sh


eornmi log cornmiIog_diree ory. C:\Cassandra/cornmi 10g vees_direc-ory: d tcaame.es savedsacac C:\Cassa dra/saved cac_es de Java por (y Reducir e l ao del HEAP descomentar la lnea!!):

da a file diree ories - C. Cassa dra/da a

MAX_HEAP_SIZE=1GB HEAP_NEWSIZE=800MB

Instalacin
Desde el cmd
ejecutar: ir a la ruta C:\Cassandra/bin y -f

cassandra

Instalacin
Desde el cmd
ejecutar: ir a la ruta C:\Cassandra/bin y -f

cassandra
Adm' istra d o r. C:

Instalacin

Una vez conectados crear un keyspace de prueba con:

create keyspace practicaCassandra;

Y asignar la conexin actual al nuevo keyspace: use practicaCassandra;


drni istradon C: .e e - cessendra-c i -h localhost -p 9160

Instalacin
XAMPP normalmente se instala en C:\XAMPP Crear una carpeta dentro de C:\XAMPP\htdocs Descomprimir el contenido de sebgirouxCassandra- Cluster-Admin en cca (esta es la carpeta de los ficheros web) llamada cca

Activar el servidor Apache desde el Panel de


Control de XAMPP

Probar la instalacin accediendo desde el


navegador:

http://lo calhost/c ca

Instalacin
XAMPP normalmente se instala en C:\XAMPP l una carpeta dentro de C:\XAMPP\htdocs Crear (esta es
XA PPCo trol Panel Applicatio

la carpeta de los ficheros web) llamada cca


Modules [JSvc Apache Running Stop

XAMPP Control Panel

Service...

II

SC M...

el Descomprim i r c o n
[] S fV vc ql [JSvc s LJ DSvc vc

1yS

tenido dIeI
Start rcu Me ry

I!
St art

Status

sebgi r o
lore ... St art

Refresh Exp

ux-Cassandra-

FileZilla

II II
rch, dmin .. )

Help dmin .. 1 Exit

Cluster-Ad m in e n cca ) I
Tomcat Start

Activar el ser v id o r
XA MPP Con tro

Ap a c d s d e e l Panel de h e e Control de
e rs io (1 _ ~a 20 11) n 2 _5 6 lindows 6_1 Build 600 Plat=orm 2 Current irectory: c: xampp Install(er) Jirectory: c: xa~~p Status Check K Busy _

XAMPP

Apache started

[Part

80]

Probar la instalacin accediendo desde el


navegador:

http://lo

calhost/c ca

Instalacin
XAMPP normalmente se instala en Crear una carpeta dentro d e C : \XA
~ ~

Disco local (C:) ~ xampp

htdocs ~ cca

en biblioteca ,., Nombre

Compartir con ,.,


A

Grabar

Nueva carpeta

Fecha de modifica ... Tipo 29/0

Tamao Carpe

css

3/201

216: 37

ta de

P P
arch archiv

ivos

\htdocs (esta es la e los ficheros w e b ) l lam a d a c ca carpeta d


helper 29/03/2012 16:37 29 0 Carpeta de archivos 012 16:3 7 3/2 Carp eta de os Im g s inelude
JS

29,03/201216:37 29/03/2012 16:37

Carpeta de archivos Carpeta de archivos Car de a rchi vos

ir el eb i r o ux Descompr i contenid o d e g Cassandram s


vie w

29

/03/2

012

16: p

eta

Cluster- A d m in en cca
elus ter_i nfo.p hp col u m nfam ily_acti o n. ph p counters.php

AUTHORS

29/03 '2012 16:37 29,03/201216:37

Archivo Archivo PHP rchivo PHP rchivo PHP

1 KB 1 8 30 KB 2 KB

29/03/201216:37

29 '03/201216:37

Activar el s e r v i d o r Apach e d e s de e l P a
de scr ibe_ co lumn fa mily .php 2 9/03 /201 216 :37 A rch i 'o PH

nel de ontrol de C
3 K a rchi 'o PHP rchivo PHP Archivo PHP rchivo PHP 3 2 Ka 7 12 2 a

XAMPP

d esc rib e_keysp a c e. ph p a index.php jmx.php KB keyspace_action.php Ka

29/03/201216:37 29/03/2012 16:37 29/03/201216:37 29/03 ''201216:37 29/03/201216:37

Probar la i n
r chi vo PHP

s talacin acced i e n d o d e s d e el nav e


UCENSE lo gin.p hp Archivo 29, 03 /20 1216 :37 1K 8 logout.php 29/03/201216:37 29 03/201216:37 rchi o PHP rchivo MKD

gador:

1 KB 5 Ka

http://lo

README.mkd

calhost/c ca

Instalacin
~ Cassandra Cluster Admin x (i) start_sample_ea sycassan dra . otavioja...

(i)

XAMPP normalmente se instala en


C:\XAMPP

Cassandra Cluster Admin

Crear una carpeta dentro de C:\XAMPP\htdocs


Cluster Partitioner: org.apache.cassandra.dht.RandomPartitioner Cluster Snitch: org.apache.cassandra.locator.SimpleSnitch Thrift API Version: 19.1 9.0 e 1-000 0 -2 4

Cluster Name= Test Cluster

la carpeta de l o s fi c h e r o s
S c h e ma Ve rs on: i 2 f ee7 9 707 d a 1-1 1

w e b ) ll a mada cca
2 d5 0cf 1 f dd

[o

Descomprim i r
K ey a

spa

el

ce s

c o n ten i d
nd Co lum n F ami lie
p

o de sebgirouxCassandra-

avabahia

Cluster-Admi n
erson

o system

en cca

o Nodeldlnfo o Versions

Activar el servid o r
o S chem a

o Indexlnfo

XAMPP Probar la instala ci


o U se r

o Migrations o locationlnfo o HintsColumnFamily praaicaCassandra o Users o person prueba


DEMO

Apache desde el Panel de Control de

n accediendo desde el navegador:

o User2

JM X

http://lo

calhost/c ca
See Stats

Instalacin

Descomprimir donde se quiera todos los .jar En Eclipse crear un nuevo proyecto Java y
aadir todas las libreras descomprimidas desde:

contenidos en el .rar de Easy-Cassandra with Dependences

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

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

Aprovecha las propiedades orientadas a objetos Cada clase se corresponde con una
familia de columnas.

de Java para relacionar clase con ColumnFamily.

Cada atributo se corresponde con una


columna.

Un atributo especial se declara como KEY para


Cassadra.

Easy-Cassandra
Para una correcta sincronizacin entre los tipos
de dato string (UTF-8 o Hexadecimal) hay que indicar a Cassandra cmo queremos que estn 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} ];

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;

Easy-Cassandra
Para obtener una conexin hacia la base de datos
hay que crear un enlace mediante la clase Persistence

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

Easy-Cassandra
Una vez realizada la conexin, el objeto
persistance ofrece los siguientes mtodos para la manipulacin de los datos.

boolean success = persistence.insert(object); boolean success = persistence.delete(object); boolean success = persistence.deleteByKeyValue(rowKey, Persona.class); b o ol e an

~ - - - -- - - - -- - - - - - - - - - - - - - - - - - - - - - -~l Comandos de actualizacin

su cc e ss

p er s is te n ce . up d at

e( o bj e ct ) ;

Easy-Cassandra
Una vez realizada la conexin, el objeto
persistance ofrece los siguientes mtodos para la manipulacin de los datos.

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);
-

Comandos de consulta

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

Pueden realizarse de manera

independiente a la estructura de objetos de la aplicacin.

Pueden aparecer algunos problemas entre los


tipos string.
C

boolean persistence.executeUpdateCql(String query);

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


\
-

Referencias
-

http://c loud.github.com/d ownloads/ otaviojava/E asy-Cassandra/U serGuideEasyCassandra_002.pdf - EasyCassandra User Guide.

Vous aimerez peut-être aussi