Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Aprendiendo Cassandra

Estas en el tema de Aprendiendo Cassandra en el foro de Java en Foros del Web. Hola, he "descubierto" este nuevo tipo de bases de datos, he leído un poco la documentación y ahora estoy haciendo algunas pruebas... para cogerle soltura ...
  #1 (permalink)  
Antiguo 23/09/2013, 14:00
 
Fecha de Ingreso: noviembre-2008
Mensajes: 47
Antigüedad: 15 años, 5 meses
Puntos: 0
Aprendiendo Cassandra

Hola,

he "descubierto" este nuevo tipo de bases de datos, he leído un poco la documentación y ahora estoy haciendo algunas pruebas... para cogerle soltura y eso... Buscando API's que me permitan trabajar en java, he encontrado una llamada "hector-core" y la estoy probando, comencé por la versión 0.7.0-29 pero esa versión no me permitía (o no supe como hacerlo) hacer búsquedas por un campo que no fuera clave, asi que actualice a la 1.1.4 que esa si me permite hacer las búsquedas que necesito. El problema es que ahora no consigo crear una columna para insertar un dato en el columnFamily. El codigo que tengo es este:

Código:
Cluster cluster = HFactory.getOrCreateCluster("Test Cluster", "localhost:9160");
            Keyspace keyspace = HFactory.createKeyspace("AuthDB", cluster);
            Mutator<String> mutator = HFactory.createMutator(keyspace, stringSerializer);
            ColumnQuery<String, String, String> columnQuery =HFactory.createStringColumnQuery(keyspace);
            mutator.insert("sample", "authCollection", HFactory.createStringColumn("username", "admin"));
            mutator.insert("sample", "authCollection", HFactory.createStringColumn("password", "admin"));
Y el codigo que uso para buscar es:

Código:
            Keyspace keyspace = HFactory.createKeyspace("AuthDB", cluster);
            ThriftRangeSlicesQuery <String, String, String> sliceQuery = (ThriftRangeSlicesQuery<String, String, String>) HFactory.createRangeSlicesQuery(keyspace, stringSerializer, stringSerializer, stringSerializer);
            sliceQuery.setColumnFamily("authCollection");
            sliceQuery.addEqualsExpression("username", "admin");
            sliceQuery.setRange("", "", false, 4);
            QueryResult<OrderedRows<String, String, String>> result = sliceQuery.execute();
El problema del cambio es que el objeto de tipo ThriftRangeSlicesQuery no tiene el método addEqualsExpression, por lo que tuve que actualizar a una versión en la que ese método estuviera implementado.

El error que da es:

Código:
23-sep-2013 21:59:49 me.prettyprint.cassandra.connection.CassandraHostRetryService <init>
INFO: Downed Host Retry service started with queue size -1 and retry delay 10s
23-sep-2013 21:59:49 me.prettyprint.cassandra.service.JmxMonitor registerMonitor
INFO: Registering JMX me.prettyprint.cassandra.service_Test Cluster:ServiceType=hector,MonitorType=hector
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.thrift.meta_data.FieldValueMetaData.<init>(BZ)V
	at org.apache.cassandra.thrift.Column.<clinit>(Column.java:140)
	at me.prettyprint.cassandra.model.HColumnImpl.<init>(HColumnImpl.java:62)
	at me.prettyprint.cassandra.model.HColumnImpl.<init>(HColumnImpl.java:35)
	at me.prettyprint.hector.api.factory.HFactory.createColumn(HFactory.java:612)
	at me.prettyprint.hector.api.factory.HFactory.createStringColumn(HFactory.java:633)
	at com.examples.cassandra.CassandraExample.insertData(CassandraExample.java:58)
	at com.examples.cassandra.CassandraExample.main(CassandraExample.java:161)
Como lo soluciono?

Gracias!
  #2 (permalink)  
Antiguo 23/09/2013, 14:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Aprendiendo Cassandra

Cita:
Como lo soluciono?
Consultando en el Foro adecuado... Programacion y frameworks son OFF TOPIC en los foros de BBDD.

Movido a Foro de Java.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/09/2013, 14:44
 
Fecha de Ingreso: noviembre-2008
Mensajes: 47
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Aprendiendo Cassandra

He cambiado la API, me he puesto a probar Astyanax y obtengo el mismo error en un punto equivalente, por lo que la me imagino que es Cassandra lo que no está bien configurado, aunque me extraña porque con la 0.7 si iba....

Tengo un equipo con Windows 8 x64 yJava 1.7 instalado, por si sirve de algo...

Edito: He conseguido solucionarlo, el problema era que la libreria libthrift-0.5.0 estaba obsoleta, he compilado y sustituido por la 0.7.0 y ya parece que funciona.

Muchas gracias a los que han leído el tema con la intención de ayudar

Saludos!

Última edición por Link_OOT; 24/09/2013 a las 15:04
  #4 (permalink)  
Antiguo 14/09/2015, 13:25
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Aprendiendo Cassandra

Cita:
Iniciado por Link_OOT Ver Mensaje
Muchas gracias a los que han leído el tema con la intención de ayudar

Saludos!
Hey que tal :D olle yo también estoy inicando con Cassandra, ahora si me vi obliado, pero la verdad yo todo lo que se es de SQL y ni idea de como hacer algo de SQL a NoSql que seria en este caso Cassandra. Pero no se no he encontrado algo que me haga entender bn como es el funcionamiento de esta BD. Si tu encontraste algo que te ayudo y bastante por fa como miembro de una cominidad te le pido XD jajja es que encerio me cuesta entender como seria el funcionamiento de esta BD

Gracias

Etiquetas: api, bases-de-datos-general
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:59.