Skip to content

Latest commit

 

History

History
183 lines (128 loc) · 4.73 KB

Cassandra_configuration.md

File metadata and controls

183 lines (128 loc) · 4.73 KB

Installation et configuration de Cassandra sur EC2

Notre cluster Cassandra est constitué de trois noeuds. Les trois noeuds correspondent à trois instances EC2 (AWS) appartenant à la même région (us-east-1) mais à trois zones de disponibilité différentes (us-east-1a, us-east-1b, us-east-1c).

Les trois instances EC2 ont été créées directement sur la plateforme AWS. Nous avons choisi des images AMI Ubuntu 18.04.

Afin d'installer et de configurer Cassandra sur les trois instances, nous nous sommes connectés à chacune d'entre elles.

Connexion SSH aux instances EC2

Dans le terminal, la commande est la suivante :

ssh -v [email protected] -i ~/Downloads/gdeltKeyPair.pem

Configurations préliminaires

Une fois connecté, les étapes suivantes ont été réalisées :

  • Ajout du repo webupd8 au système :
sudo add-apt-repository ppa:webupd8team/java
  • Mise à jour des packages :
sudo apt-get update
  • Installation de java :
sudo apt install openjdk-8-jre-headless 

Ensuite, il a fallu ajouter des variables d'environnement afin d'indiquer au système le chemin du répertoire d'exécution. Pour cela, nous avons modifié le fichier .bashrc de la façon suivante :

  • Ouverture du fichier .bashrc avec un éditeur de texte (ici Vim) :
vi ~/.bashrc
  • Ajout des variables d'environnement :
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

Ne pas oublier de les charger avec la commande :

source ~/.bashrc

Ces commandes ont été effectuées sur chaque instance.

Installation de Cassandra

  • Téléchargement du fichier d'installation (janvier 2020) :
wget http://archive.apache.org/dist/cassandra/3.11.3/apache-cassandra-3.11.3-bin.tar.gz
  • Décompression du fichier zip :
tar -xvf apache-cassandra-3.11.3-bin.tar.gz
  • Suppression du fichier zip :
rm apache-cassandra-3.11.3-bin.tar.gz
  • Suppression du fichier zip :
rm apache-cassandra-3.11.3-bin.tar.gz

Cassandra est désormais installé dans le /home de l'instance. Ces commandes ont été effectuées sur chaque instance avant de passer à l'étape suivante.

Configuration de Cassandra

  • Positionnement dans le dossier de configuration de Cassandra :
cd apache-cassandra-3.11.3/conf/

Nous avons configuré deux fichiers : cassandra.yaml et cassandra-rackdc.properties.

Configuration du fichier cassandra.yaml

  • Ouverture du fichier cassandra.yaml :
vi cassandra.yaml
  • Modification des éléments suivants :
seeds : "ip_noeud1,ip_noeud2,ip_noeud3"
endpoint_snitch : Ec2Snitch
listen_address : ip privée du noeud en question sans guillemets
rpc_address : ip privée du noeud en question sans guillemets

Ec2Snitch est utilisé car nous développons le cluster dans une seule région. Comme notre facteur de réplication était de 3 dans la région USA Est (Virginie du Nord), us-east-1, alors le paramètre Ec2Snitch permet la réplication des données sur les zones de disponibilité dans us-east-1. Chaque opération d'écriture a été répliquée sur les nœuds de nos trois zones de disponibilité (us-east-1a, us-east-1b et us-east-1c). Chaque zone de disponibilité était un rack différent.

Configuration du fichier cassandra-rackdc.properties

Les éléments relatifs aux datacenters (dc=dc1) et aux racks (rack=rack1) ont été commentés.

Ces étapes ont été réalisées sur chaque noeud avant de démarrer Cassandra.

Démarrage de Cassandra et vérification de la communication entre les noeuds

Sur chaque noeud, nous avons effectué les opérations suivantes :

  • Positionnement dans le dossier /bin de Cassandra :
cd apache-cassandra-3.11.3/bin/
  • Exécution de Cassandra :
./cassandra

Cassandra a démarré et la présence du mot "HANDSHAKE" dans certaines lignes nous a indiqué que les noeuds communiquaient.

Nous avons également vérifié l'état des différents noeuds avec la commande :

./nodetool status