Le but est d'installer un cluster cassandra 3.7 (version communautaire Apache).
Le cluster est constitué de 3 noeuds :
cassandra01.datalbi.com 192.168.56.141 cassandra02.datalbi.com 192.168.56.142 cassandra03.datalbi.com 192.168.56.143
CPU : un processeur est suffisant
Mémoire : 4 Go minimum, 8 Go conseillé
Disque : maximum 500 Go
On part d'une installation minimale de CentOS 7.1.
Les seuls prérequis pour Cassandra sont :
Installer le jdk 8 que l'on aura préalablement téléchargé:
cd /opt tar xf /root/jdk-8u91-linux-x64.tar
Il est conseillé d'utiliser un compte linux dédié pour exécuter Cassandra. On crée donc un groupe et un compte cassandra :
groupadd -g 400 cassandra useradd -g cassandra -u 400 -m cassandra passwd cassandra
Si le firewall est activé, le désactiver :
systemctl disable firewalld systemctl stop firewalld
A l'heure ou est écrit cet article, il n'existe pas de paquetage rpm pour installer Cassandra en version communautaire. On doit donc installer les fichiers manuellement.
Télécharger le fichier apache-cassandra-3.7.bin.tar à l'adresse http://cassandra.apache.org/download.
Extraire le contenu du fichier :
su - cd /opt tar xf /root/apache-cassandra-3.7.bin.tar chown -R cassandra:cassandra /opt/apache-cassandra-3.7
Mettre à jour les variables d'environnement pour le compte linux cassandra :
su - cassandra vi .bashrc # Ajouter les lignes suivantes export JAVA_HOME=/opt/jdk1.8.0_91 export CASSANDRA_HOME=/opt/apache-cassandra-3.7 export PATH=$PATH:$JAVA_HOME/bin:$CASSANDRA_HOME/bin
Créer les répertoires qui vont acceuillir les données :
su - mkdir /var/lib/cassandra mkdir /var/lib/cassandra/data mkdir /var/lib/cassandra/commitlog mkdir /var/lib/cassandra/hints mkdir /var/lib/cassandra/saved_caches chown -R cassandra:cassandra /var/lib/cassandra
Modifier dans le fichier $CASSANDRA_HOME/conf/cassandra.yaml les variables ci-dessous en prenant soins de respecter les espaces et retour à la ligne.
# Nom du cluster cluster_name : 'cassandra' # Adresse d'ecoute pour la communication inter-noeuds # Utiliser l'adresse du noeud listen_address: 192.168.56.141 # Adresse d'ecoute pour la communication avec les clients # Utiliser l'adresse du noeud rpc_address: 192.168.56.141 # Adresses pour le bootstrap # Preco : 3 IP par Data Center seed_provider: - seeds : "192.168.56.141,192.168.56.142,192.168.56.143" # Definition de la topologie # GossipingPropertyFileSnitch = definition du noued local dans le fichier cassandra-rackdc.properties # puis propagation par le protocole Gossip endpoint_snitch: GossipingPropertyFileSnitch # Repertoire des fichiers hinted handoff hints_directory: /var/lib/cassandra/hints # Repertoire des fichiers de donnee data_file_directories: - /var/lib/cassandra/data # Repertoire des fichier commitlog commitlog_directory: /var/lib/cassandra/commitlog # Repertoire des fichiers saved cache saved_caches_directory: /var/lib/cassandra/saved_caches
Modifier le nom du Data Center et du Rack dans le fichier $CASSANDRA_HOME/conf/cassandra-rackdc.properties
dc: dc1 rack: rack1
Sur chaque noeud :
su - cassandra cd $CASSANDRA_HOME bin/cassandra
Le démarrage s'exécute de lui-même en background.
su - cassandra nodetool status Datacenter: dc1 =============== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 192.168.56.141 178,04 KiB 256 71,6% a52103c7-8554-4a0a-934d-fbf0f172212d rack1 UN 192.168.56.142 171,56 KiB 256 60,1% 47007c0e-fe14-406b-beb1-9dc12d74232a rack1 UN 192.168.56.143 171,27 KiB 256 68,3% 9f034b97-1896-445f-96ad-b41cd36ed863 rack1
Sur chaque noeud :
ps -ef | grep java # noter le pid de cassandra kill no_du_pid