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.

1 comentario:

  1. Es bueno tener a mano un datacenter cuando se tiene un emprendimiento que ha crecido. También es conveniente saber algunas cosas sobre el Hosting de Empresas para saber cuando nos es más eficiente

    ResponderEliminar