Ahora vamos a instalar varios nodos de Cassandra, 3 para ser exactos.
Ingredientes:
- Muchos servidores (en este caso 3)
- apache-cassandra-3.11.x
Antes de empezar vamos a tener que instalar Cassandra en cada uno de los nodos como lo indicamos aquí. Y luego los nodos se pueden ver (debemos bajar firewall) o cualquier cosa que puede interferir en la comunicación.
Bajamos los nodos de Cassandra (en el caso que lo hayamos levantado). Ojo si subimos los nodos vamos a tener que borrar el contenido de las carpetas:
/data/data/system
/data/commitlog
Ahora debemos editar el archivo Cassandra.yaml que esta en conf :
cluster_name: El nombre del cluste (y si!)
seeds: acá le metemos los nombres o las ips de los servidores separados por coma.
listen_address: es la ip con que nuestro servidor se hace conocido, por defecto esta localhost, pero tenemos que poner la ip del servidor.
rpc_address: similar a listen_address, va la ip del servidor. Esta es la dirección IP para llamadas de procedimiento remoto.
endpoint_snitch: es el modo en que casandra se entera de los nuevos servidores o servidores caidos. Le debemos poner : GossipingPropertyFileSnitch
auto_bootstrap: Esta directiva no está en el archivo de configuración, por lo que debe agregarse y establecerse en falso. Esto hace que los nuevos nodos utilicen automáticamente los datos correctos. Es opcional si agrega nodos a un cluster existente, pero es necesario cuando está inicializando un cluster nuevo, es decir, uno sin datos.
Y listo!
Vamos levantando los nodos. Para probar el cluster utilizamos la herramienta nodetool de esta manera :
$ nodetool status
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 192.168.0.105 190.31 KiB 256 64,9% 667fc687-3ef7-4470-af47-c72e328f33c8 rack1
UN 192.168.0.108 133.77 KiB 256 65,0% 72d61827-9b4b-415c-9fdc-43426452f087 rack1
UN 192.168.0.102 165.93 KiB 256 70,1% f4d7357c-2bf5-4bd1-bae9-c63ab0a02c3f rack1
Y si esto funciona, ya tenemos nuestro cluster.