viernes, 2 de octubre de 2015

Como te gusta? Fuerte? Negro?

Hoy fue el Día Internacional  del Café

Como lo celebraron?

Yo con mis amigas, tomando un rico latte y poniéndonos al tanto de los chismes.

No gusta pasar a tomar una tacita de cafe?


Aaahhh... esa bebida tan deliciosamente adictiva tiene sus orígenes en África, pero los árabes fueron quienes la llevaron al mundo.

Que haríamos sin el?

Existen dos tipos de grano, el arábica, que es la planta original, y la robusta. A su vez, dependiendo de la altura, el suelo, la temperatura, cantidad de lluvia, etc., se derivan distintas variedades de cafe. 

Pudiera seguir hablando de esto y copiar directamente lo que dice Wikipedia, o podrian mejor buscarse un buen libro sobre el cafe y leer un poco, acompañados de una buena taza de cafe.

[Por eso estoy escribiendo esto tan tarde, el chisme se pone tan bueno que siempre nos corren de las cafeterias :(]

Enjoy and relax!

miércoles, 2 de septiembre de 2015

Prudencia y paciencia también salvan vidas.

Mi mamá (en realidad es mi abuela, pero ella me crió) cumplió años! Y fuimos a celebrar comiendo langosta al mero estilo Puerto Nuevo.

Cápsula Informativa: Puerto Nuevo es un pequeño pueblo a 10 minutos al sur de Rosarito, 50 minutos de Ensenada, 40 minutos de San Diego, ya ubicados? Es muy famoso por la langosta que preparan ahí, con una forma peculiar de servirla con tortillas de harina, frijoles y arroz. El lugar es principalmente turístico. Además de restaurantes, hay puestos de artesanías y dulces y pan.

El clima se prestaba para salir. Hizo mucho calor, así que era para estar cerca de la playa, comer cosas ricas al calor del sol y la brisa marina. Aaahhh…

Fuimos a comer a Hacienda Ortega. Puerto Nuevo tiene muchos restaurantes cuya especialidad son los mariscos y productos del mar. Aunque también incluyen menú para carnívoros come-vaquitas.
No es la primera vez que vamos a Hacienda Ortega, y se está volviendo como una tradición de cumpleaños (esta es la tercera vez en tres años). El edificio tiene tres pisos. La decoración es como rústica, con ventanas grandes y hay una parte al aire libre, muy linda. OJO, el restaurante tiene estacionamiento gratish, no sean como yo que para evitarme la molestia de ver si había estacionamiento o no, me metí al primero que encontré que es de paga (50 pesos por todo el día), pero el estacionamiento del restaurante estaba casi vacío, así que si vale la pena verificar primero y ahorrarse unos pesitos. La comida esta muy rica, yo pedí unos camarones empanizados en coco con salsa de tamarindo. 

Camarones empanizados con coco en salsa de tamarindo

Otros miembros de mi familia pidieron langosta al tradicional estilo Puerto Nuevo o pescado empanizado. Tienen barra de bebidas preparadas y cervezas. Y ya que termines de comer puedes ir a caminar a los puestos de artesanías y dulces mexicanos.

Anyway… de eso no se trata este post.

Se trata de cómo un estúpido casi choca con nosotros y nos mata.

Suena muy dramático, hasta para mi que no me gusta el drama (just kidding, I’m a drama queen).
Los hechos se suscitaron de la siguiente manera: de regreso a Ensenada, nos fuimos por la carretera libre Tijuana-Ensenada, para entretenernos un poco más la vista con los puestos que están al lado del camino, hasta llegar al entronque con la Carretera Federal 1 (a.k.a. La de paga). La carretera libre es una carretera de solo 2 carriles y en secciones el acotamiento es pequeño y tienes a tu lado un barranco que da al mar.

En una de las rectas, un estúpido para el cual no hay maldición en éntico, élfico o en lenguas del hombre para la babosada que hizo, venía en sentido contrario y trató de rebasar al carro que iba enfrente de él, invadiendo mi carril (pues sí, porque el camino solo tiene 2 carriles!!). Al ver que no iba a poder rebasar el auto que tenía enfrente, en lugar de regresar a su lugar y esperar a que yo y todos los carros detrás de mí se pasaran para volverlo a intentar, el muy idiota aceleró para intentar ganarme e incorporarse en su carril. Al ver a ese Toyota FJ color guinda que se dirigía frente a mi, como a 90 km/hr o más y acelerando, frené y traté de salirme al acotamiento. El auto que el rebasó también se frenó. 

Y se salió con la suya por un pelito de rana calva y se fue el infeliz.

Puede que no suene muy aparatoso, pero cuando esto sucede en 1 o 2 segundos, cada decisión bien o mal tomada en un milisegundo puede ser la diferencia.
En cuanto pasó, yo seguí mi marcha, con el corazón, y el de toda mi familia, a mil por hora, pero como si nada hubiera pasado. Luego sentí dolor de cabeza y pesadez por la tarde de pensar en cómo pudo terminar. Si seguimos las teorías de universos paralelos, en ese momento, cientos de otros se crearon para dar paso a las posibilidades:

  • Pudo no ser muy rápido para incorporarse y chocamos de frente. En algún universo me morí o estoy paralítica o whatever, algo muy malo pasó.
  • Pude haber frenado más fuerte, mi carro pudo haber derrapado en el asfalto, quizás pudo girar sobre si, salirme del camino o chocar con el que venía en el otro carril y tremenda carambola.
  • Pude salirme de la carretera tratando de esquivarlo. A la velocidad que yo venía, si hubiera tomado parte de la terracería y el desnivel tan alto entre el acotamiento y el canal para la lluvia, puder haberme volteado sobre mi costado.
  • El auto que venia atrás de mi pudo haberme chocado.
  • Y si esto es Final Destination???
  • Etc….

Y esto es solo hablando de los worst case scenarios. Las posibilidades son infinitas. Creo que lo mejor que pudo pasar nos pasó y solo fue un gran susto… un gran $%#*@& susto. Gracias %^&*#$!@, quien hayas sido, por casi darme diabetes con el susto. Y gracias Dios porque llegamos a casa sanitos, contentos para seguir comiendo pastel :),

Así que, amigos mios…. CUAL ES LA PRISA?!?!

Vida solo hay una. Para que apresurarnos por llegar 5 minutos mas temprano. Preferible llegar tarde a no llegar nunca.
No sean como el conductor imprudente de ese Toyota FJ guinda, que si el final hubiera sido otro, yo no estaría escribiendo esto.

Seamos un poco mas consientes a la hora de manejar.

Disfruten la vida y Hakuna matata.

viernes, 21 de agosto de 2015

Turisteando en: Seattle

Hace un par de meses, unos amigos y yo nos fuimos de vacaciones a Seattle a visitar a unos amigos que viven por allá. El paisaje es muuuuuy diferente. Viniendo de un lugar semidesértico, donde lo mas que alcanza son unos matorrales chaparros en los cerros y palmeras impuestas (que para que se vea bonito), tanto verdor me hizo sentir que la vegetación me atacaba.

Diciendo eso, un cambio de ambiente se sintió muy bien.

Como siempre, nos la pasamos cazando ofertas de vuelos desde como [6 meses antes], para encontrar buenos precios y que todos pudiéramos pedir permiso.

Guia turística: Seattle

Alojamiento

Dos semanas antes de viajar no teníamos donde quedarnos. El plan era estar unos días en Seattle, luego movernos a Redmond, donde viven nuestros amigos. La razón es ahorrar transporte mientras visitamos el centro. El problema era que fue fin de semana largo para Estados Unidos, así que había la posibilidad de no encontrar hoteles baratos.
Un amigo sugirió un flamante Hilton o Sheraton. Pero el presupuesto no alcanzaba más que para un hostal o algún hotelillo. Cuando pensamos en hostal fue “hay que compartir baño, no no no”. Así que nos fuimos por el “hotelillo”...

The Moore hotel: “La pocilga” como cariñosamente le apodamos, es un hotel con unos 100 años, mas o menos, de antiguedad. Nos tocó en el último de los 7 pisos, en un cuarto tipo “europeo”, osea que había que compartir baño, para nuestra desgracia/sorpresa. Hay cuartos con baño propio pero salen mas caros. No sabíamos hasta que vimos el cuarto: pequeño, las camas no eran el tamaño que nos habían especificado, tenía un lavamanos con espejo, televisión, las ventanas no tenían mosquitero, me recordó a esa película “1408” con John Cusack, si, la del cuarto de hotel maldito. Al final fue divertido. Había que levantarse muy temprano o bañarse a media noche para encontrar el baño desocupado, lo mismo para la pipis/pupus. Pasillos tétricos y cuartos con olor a viejo. El plus de este hotel es que está a solo 2 cuadras de Pike Public Market. Desde ahí se puede ir caminando a muchos lugares. Lamentablemente no tomamos fotos, el shock fue muy grande. [The Moore Hotel]

Redmond inn: Nos movimos a Redmond a un hotel a dos cuadras de la casa de nuestros amigos. Debo decir que fue una experiencia más placentera. El cuarto era más espacioso, con baño propio!!!! Desayuno gratis incluido, piscina techada y jacuzzi... :D. El staff muy amable. Por supuesto que no usamos ninguna de las instalaciones, estuvimos muy ocupados turisteando. [Redmond Inn]

Entretenimiento

Hay tantas cosas que hacer y ver en Seattle, que una semana pudiera no alcanzarte. Tampoco el dinero.

Pike Public Market: Mercado público más antiguo de Estados Unidos, me parece  que tiene 100 años o más. Aquí puedes encontrar de todo: artesanías, frutas y verduras frescas, conservas, flores, restaurantes, tiendas de libros, souvenirs de todo tipo, etc. Y es que se extiende hasta 6 pisos hacia abajo. Aquí también te encuentras a los pescadores que se arrojan el pescado mientras cantan. Y te ofrece una vista al rio. Is a must. [Pike Public Market]

Santos Salmones voladores, Batman

Ride the Ducks: Te pasean en un vehículo anfibio! Vas por la carretera y de pronto, pum! Al agua patos, con un recorrido de aproximadamente media hora por el río, con Seattle en el fondo. Los conductores son divertidisimos y crean el ambiente para que todos terminemos cantando “Call me maybe”. Tiene dos estaciones y el recorrido es como de 1 hora mas o menos. [Ride the ducks].

On a Duck! Vista de la bahia
Tour Subterráneo: Te sorprenderias de las cosas que hay debajo de Seattle. Este tour te lleva por un par de cuadras en la “otra Seattle”, la escondida, la subterránea y sucia Seattle de 1890s. Vale la pena escuchar historias de como inicio la ciudad y sus problemas de plomería. [Underground Tour]

EMP: El museo para los geeks, EMP es una mezcla de música, comics, arte pop, ciencia ficción y cine. Si eres muy fan de este género, te vas a divertir. Cuando fuimos habia exhibiciones de Nirvana, videojuegos indie, peliculas de terror y Star Wars. [EMP Museum]

Exposicion sobre video juegos
Esposicion sobre los vestuarios de Star Wars

Space Needle: Si vas a Seattle y no fuiste a Space Needle es como si no hubieras ido. Creada para la feria mundial de 1962, imaginar el paisaje de la ciudad sin ella es como pensar en Nueva York sin la Estatua de la Libertad al fondo. Si la visitas conviene comprar el combo de boletos de Space Needle mas el Chihuly Glass Museum o el Museo de Ciencias del Pacifico, te ahorras unos pesitos. [Space Needle]

EMP + Space Needle

Chihuly Glass Museum: Te encontrarás en este museo con hermosas esculturas hechas con vidrio. Coloridas, retorcidas, grandes, pequeñas, enormes! Con un poco de suerte, verás una demostración de como hacer una pieza e información relacionada a las técnicas para trabajar el vidrio. De noche se ilumina el jardín y con la “Aguja Espacial” de fondo… hermoso! Pero si no te llama la atención, mejor ahorrate ese dinerito. [Chihuly Garden and Glass]

Glass, glass everywhere

Kerry Park: Entre nuestros planes era ir a Kerry Park… caminando! Que bueno que no lo hicimos. Este parque ofrece una hermosa vista de la ciudad. Nosotros visitamos el parque de noche.

Vista nocturna de Seattle desde Kerry Park

Si te sobra tiempo…

Mount Rainier: Si te sobra , digamos un día (porque son como 3 horas de camino), aventurate a Mount Rainier! Pero revisa primero el estado del tiempo o te pasará como a nosotros, que vamos bien “veraniegos” en mayo y estaba a 8 grados Centígrados o menos, con nieve, nublado, lluvioso; no íbamos preparados, pero pues, de eso se trata la aventura! Corrimos a comprar paraguas, yo me compre un sweater, porque en serio, no llevaba otra cosa para cubrirme. No logramos llegar muy lejos, la nieve lo hacía peligroso. De regreso, conocimos a una mujer de 78 años, Anna Marie, alemana residente de Washington, que nos contó historias interesantes de su vida. Luego llegamos al refugio, a medio secar los tenis en la chimenea y con una taza de chocolate caliente, yum! [Mount Rainier]



Leavenworth: Un pueblito estilo alemán en la orilla de un río, enclavado en la montaña. Recuerdan a Anna Marie? Una amiga alemana de ella que lo visitó dijo “is this a joke?” Refiriendose a lo falso que se ven las fachadas comparadas con un pueblo tradicional bávaro. Pero no importa, no le quita lo bonito! Otras 3 horas de camino para llegar ahí. Hambre? Salchichas alemanas a la orden. [Leavenworth]


 

Chomps, Chomps


No fuimos quisquillosos y nos gusta probar cosas diferentes.

Hot Dogs: De tanto caminar, nos dio hambre y como hacia falta algo de tiempo para llegar al restaurante, paramos a comer unos hot dogs. Cada cierto lugar tiene su estilo de prepararlos, ejemplo Nueva York y Chicago (no de mis favoritos), en Seattle, se preparan con queso crema. Y si a eso le sumamos un samurai, salen unos hot dogs fusion gourmet algo extraños. Pero ricos. Yo me quedo con los que hace mi mama. [Dog Japon]

Skillet: Nuestros amigos nos invitaron a cenar a este restaurante ubicado en Capitol Hill. Muy rica la comida, abundante, te lo sirven directo del sartén. Yo pedí la hamburguesa vegetariana, deliciosaaaaa! Y los precios me parecieron accesibles para el lugar y la ciudad. Después te puedes ir de party, ya que el distrito fiestero esta a unas calles de ahi. [Skillet]

Starbucks: Seattle está obsesionado con el café. No sorprende que haya un Starbucks en cada esquina, además de que existen otras cadenas de cafeterías, cada una con su estilo y su sello personal. Mmmm… café, café, café! [Starbucks Store]

Piroshky Piroshky: Panes tradicionales rusos con un twist. Rellenos de cosas dulces o saladas, están super ricos!! Es un establecimiento pequeño en Pike Public Market, casi al lado del primer Starbucks. Y por ser tan pequeño, hay fila para comprar. Pero un poco de espera tiene su recompensa. [Piroshky Piroshky]

Lowell's (at Pike Market Place): la primera vez que probé una crema de almeja (clam chowder) fue en San Francisco. Aun me falta colmillo para distinguir una buena de una mala, para mi todas son buenas, jeje, pero por eso es mi deber probarlas todas, a donde quiera que vaya! Esta se encuentra al interior de Pike Market, con una vista al río y la rueda de la fortuna. Si no te gusta la almeja, hay otras cosas en el menu que puedes probar. [Lowell's]

Lola: fuimos aqui para desayunar, pero tienen menú para todas horas. Me recuerda a un restaurante al que irías a desayunar con tu familia un domingo. Muy rica la comida, el precio creo que esta en los estándares por el lugar, pero sí me pareció medianamente elevado, hubiera podido desayunar en otro lugar por menos. Algo que comentar es que me pareció ruidoso. Y hay que hacer reservación porque es muy solicitado. [Lola]

Portage Bay: Desayunos preparados con ingredientes orgánicos. Tiene una barra de fruta fresca para acompañar tu desayuno, sin embargo, tiene cargo extra. Este lugar también se llena rapido, asi que haz reservación o espera un poco en la linea, asi te da más hambre. [Portage Bay]

Kanishka Cuisine of India: Tikka Masala!!! Y no diré más. [Kanishka]
...
...
...
Me encanta el tikka masala. Y me encanta sopear el naan en la salsa! Esta muy rico. Fuimos a este lugar a cenar con nuestros amigos. Ellos lo frecuentan tanto que el mesero ya los conoce, así que nos trataron como VIP. La comida está muy rica. Y además, puedes acompañar tu comida con tu película Bollywoodesca favorita.

Moore Coffee Shop: Esta cafetería esta al lado del hotel Moore. Salíamos tan rápido todos los días que no nos daba tiempo de ir por un café. Pero al final, nos dimos ese tiempo para hacer la fila y comprar. Está pequeño y es muy concurrido. Y como no, si está muy rico el café! Y nos sorprendió con arte en latte. [Moore Coffee Shop]



Los viajes pueden dejarte experiencias y aprendizajes que no conseguirás de ninguna otra forma. Y trato de aprender cosas cada que puedo.

Que aprendí en este viaje en particular? Que puedo compartir el baño con un piso completo de un hotel.

Y aunque parece que hicimos muchas cosas y anduvimos a mil por hora, siento que faltó mucho tiempo para hacer más cosas. Así es siempre.

Pero es el pretexto perfecto para regresar.


viernes, 31 de julio de 2015

Inserción de datos a Apache Cassandra


El último y nos vamos.

DevCenter es un entorno Eclipse adaptado para trabajar con Cassandra, como un manejador de base de datos. Permite guardar conexiones, ejecutar sentencias CQL y guardarlas como scripts.

Se puede bajar esta aplicación desde [aqui]. Lo instalas en una de tus máquinas virtuales.

Para crear una conexión en DevCenter se da clic en el icono ubicado en la parte superior izquierda como se visualiza en la siguiente imagen.
coneccion.png

Se edita el nombre de la conexión y el IP del host, en este caso es la IP de una de las máquinas virtuales que creaste y que tienen corriendo el proceso de Cassandra.

coneccion1.png

Inserción de datos

Herramienta CQL para agregar datos

La herramienta que incluye el paquete de instalación puede usarse por línea de comandos haciendo consultas en el lenguaje de consultas de Cassandra (CQL).



Keyspace y familias de columnas

Se necesita crear un keyspace para poder empezar a llenar datos. El comando para crear un keyspace es el siguiente:

CREATE KEYSPACE if not exists SaleStore WITH REPLICATION =
{ 'class' : 'SimpleStrategy', 'replication_factor' : 1 };

Un keyspace es un namespace que define la estrategia de replicación. Nombres válidos para keyspaces son aquellos compuestos exclusivamente de caracteres alfanuméricos y que su longitud sea menor o igual a 32. Los keyspaces no distinguen entre mayúsculas y minúsculas: utilice un nombre entrecomillado si desea que distinga entre estos tipos de letra.

Las propiedades soportadas para la sentencia CREATE KEYSPACE son:

Nombre
Tipo
Obligatorio
Valor por defecto
Descripción
replication
map
Si

La estrategia de replicación y las opciones para user el keyspace.
durable_writes
simple
No
true
Opción si desea usar los logs para registrar las actualizaciones en el keyspace (deshabilite a su propio riesgo).

La propiedad de replication es obligatoria. Debe al menos contener una opción de que define la estrategia de replicación a usar. El resto de las opciones depende del tipo de la estrategia a seguir. Por defecto, Cassandra soporta las siguientes clases:

  • ‘SimpleStrategy’: una estrategia simple que define un factor de replicación simple para todo el cluster. La única opción soportada es ‘replication_factor’ que define el factor de replicación y es obligatoria.
  • 'NetworkTopologyStrategy': Una estrategia de replicación que permite dar un factor de replicación independiente para cada datacenter. El resto de las opciones son parejas de llave-valor donde cada llave es el nombre de un datacenter y el calor es el factor de replicación para dicho datacenter.
  • 'OldNetworkTopologyStrategy': Una estrategia de replicación obsoleta. No debería usarse y en su lugar usar 'NetworkTopologyStrategy'.

Intentar recrear un keyspace que ya existe dará error,  a menos que se utilice la opción IF NOT EXISTS. Si se utiliza, la sentencia no se ejecutará si el keyspace ya existe.

Incrementar el factor de replicación incrementa el total de copias del keyspace guardadas en un cluster. Es muy importante incrementar el factor de replicación, porque si se utiliza el valor de defecto de 1 y el nodo con la única copia falla, no será posible conectarse al data center porque el keyspace no fue replicado.

Una vez que el keyspace es creado, se pueden crear tablas, insertar datos, consultar información, etc. Las familias de columnas son como lo serían las tablas en una base de datos relacional.

Creación de keyspace y familias de columnas usando DataStax Development Center

Para este proyecto se uso DevCenter para crear el Keyspace y la tabla como se aprecia en la siguiente imagen.

DevCenterCreateTable.png


También se puede verificar que los datos se hayan creado dentro de OpsCenter.

opscenterSaleStore.png


Insertar datos

Para importar datos a Cassandra de un archivo separado por comas (CSV) se usa el comando COPY. En DevCenter no es posible utilizar el comando COPY por lo que es necesario utilizar la herramienta por defecto CQL por línea de comandos.

La sintaxis de una consulta con el comando COPY es:
COPY table_name ( column, ...)
FROM ( 'file_name' | STDIN )
WITH option = 'value' AND ...
Por defecto, cuando se usa el comando COPY FROM, Cassandra espera  que cada renglón en el archivo CSV tenga el mismo número de columnas que la tabla donde los datos serán importados. Cassandra asigna los campos en el orden que están en la tabla. Para aplicar los datos a ciertas columnas o en cierto orden, se pueden especificar el nombre de las columnas entre paréntesis después del nombre de la columna.
También es necesario que digas en la query de donde obtendremos los datos. En este caso, nuestro archivo estaba en C:\sales2.csv.

[Esto nos causó tantos problemas por lo que relatamos arriba. Todos deben tener las mismas columnas y si no es así, lanza un error, alcanza a insertar todas las lineas hasta antes de la dio el error. El archivo lo encontramos en Internet y pudiera ser que no estaba bien formado]

A continuación un ejemplo del comando ejecutado desde la consola de CQLSH.

COPY.png

Realizar consulta a datos

Para aplicar consultas a los datos o realizar queries puede utilizarse tanto CQLSH como DevCenter.

En la siguiente imagen se puede apreciar una consulta de los datos importados en la tabla “sales” utilizando la herramienta DevCenter.

DevCenterConsulta.png

Y pum! Ya puedes conquistar el mundo!
Si me preguntan ahora si recuerdo todo esto, solo diré que una laguna borrosa se apodera de mi mente. Tal vez fue tan traumático que lo olvide. O es conocimiento que no volví a aplicar en mucho tiempo y lo olvide a cambio de cosas mas importantes, como alguna estadística tonta o la escena mas épica de Sharknado.

Espero que esto sea de ayuda :).

Referencias útiles

Datastax, Inc., CQL for Cassandra 2.x Documentation: http://www.datastax.com/documentation/cql/3.1/pdf/cql31.pdf

Apache-Cassandra, Cassandra Query Language (CQL) v3.1.7: https://cassandra.apache.org/doc/cql3/CQL.html#createKeyspaceStmt

domingo, 26 de julio de 2015

Creación de datacenter en un ambiente local de Apache Cassandra

Luego de horas y horas de invocación a los espíritus y trance… pudimos crear un data center con 2 nodos.

Si alguien pasó por lo mismo y tuvo una mejor experiencia o encontró cómo hacerlo más rápido y sin dolor, sería muy feliz si lo compartieran.

Continuando con los posts de Apache Cassandra, aca pueden ver como se instala en máquinas con sistema operativo Windows.

Antes de comenzar…
Para simular el data center, creamos dos máquinas virtuales para trabajar sobre ellas.

Variables de entorno

Antes de agregar nodos, es importante agregar/editar las siguientes variables de entorno.


  • CASSANDRA_HOME
CASSANDRA_HOME.png

  • JAVA_HOME
JAVA_HOME.png

  • Agregar Python en la variable de entorno Path.
PATH_PYTHON.png

Agregando Nodos al data center

Para este proyecto se creó un datacenter, “datacenter1” (que imaginación), un cluster “Test Cluster” y dos nodos. Para el primer nodo ó máquina A se tiene el ip 192.168.1.105. Para el segundo nodo ó máquina B se tiene el ip 192.168.1.101, pero puede utilizarse cualquier par de IP siempre y cuando estén en una red y puedan comunicarse entre ellas (cuando creaste tus máquinas virtuales, ahí les asignaste sus IP, asegurate que esten en la misma red).

Diferencia entre:
Data center: Es una colección relacionada de nodos. Puede ser virtual o físico.
Cluster: un cluster contiene uno o mas data centers. Puede estar distribuido físicamente en diferentes ubicaciones.
Nodo: aquí se guardan los datos. Es la estructura base dentro de la arquitectura de Cassandra.

Para configurar el data center con múltiples nodos solo es necesario realizar algunas modificaciones en el archivo Cassandra.yaml que se encuentra bajo el directorio de la instalación de Cassandra\conf\Cassandra.yaml, para este caso específico se encontró en:

C:\Program Files\apache-cassandra\conf\Cassandra.yaml.

Se necesita que una de las máquinas funcione como proveedor para servir como punto de contacto con  todos los nodos que se unan al data center. Para este ejemplo se designó a la máquina A, con IP 192.168.1.105, como proveedor o seed.

Configuración de la máquina A. En el archivo Cassandra.yaml hay que modificar la siguiente información.
maquinaA.png
La propiedad auto_bootstrap fue removida del archivo cassandra.yaml en esta versión de Cassandra, por lo que se tuvo que agregar manualmente.

Configuración de la máquina B. En el archivo Cassandra.yaml asegurarse de que el nombre del cluster sea el mismo que el de la máquina A, al igual que la IP de la máquina que funcionará como seed. Modificar la siguiente información.

maquinaB.png
Como siguiente paso, hay que apagar los servicios tanto en máquina A como en máquina B, para esto se va a panel de control->Herramientas administrativas->Servicios. En esta ventana hay que detener el servicio y en el Tipo de Inicio del Servicio es recomendable ponerlo de tipo manual.

servicios.png

De haber datos ya cargados, será necesario borrarlos. Para este ejemplo, los siguientes directorios ubicados en DataStax Community\data\data fueron borrados.

data.png

También hay que borrar los archivos ubicados dentro de los directorios commitlog y saved_caches. Nota: no borrar los directorios.

commitlog.png

Para iniciar el servicio hay que hacerlo directamente dando doble clic en el archivo cassandra.bat ubicado en el directorio DataStax Community\apache-cassandra\bin en cada máquina virtual.

bat.png

Posteriormente, con una ventana de command promt dirigirse al directorio /bin de Cassandra y escribir el siguiente comando para comprobar que se tienen los dos nodos en el data center:

nodetool status

dosnodos.png

También se puede comprobar con el comando: nodetool – host 192.168.105 –p  7199 ring

OpsCenter

OpsCenter es una herramienta visual que permite manejar el cluster, así como sus nodos y datos. Es gratis y viene en el paquete de instalación de DataStax Community Edition.

En OpsCenter se puede visualizar el resultado del cluster con dos nodos.
opscenter_ring.png

opscenter_overview.png

Y ya tenemos nuestro data center virtual con 2 noditos.
Piece of cake. Aja.

En el siguente post les comento como trabajar con estos nodos creando una base de datos e insertando datos.