Cluster

Rapide configuration d'un cluster Cassandra

Utilisation de Cassandra


Voici un premier article d'utilisation de Cassandra.

L'idée de Cassandra étant de répliquer de gros volumes de données sur un cluster peut paraître compliquée au premier abord si on veut tester ça sur une seule machine en local.


Installation de CCM et lancement d'un cluster


En fait, après une courte rechercher sur le site officiel de Cassandra, j'ai trouvé un moyen plutôt simple d'émuler un cluster.
Un lien est donné vers un projet Github, le projet ccm qui permet en quelques commandes seulement de créer un cluster Cassandra.
Le seul problème que j'ai eu, en utilisant les commandes données dans le README a été un échec de la compilation de Cassandra en version 2.0.5.
Voici les commandes que j'ai utilisé et qui ont fonctionné pour moi (je passe l'installation des bibliothèques requises).

Installation de CCM sur ma machine depuis le dossier ccm :

sudo ./setup.py install
Création d'un cluster Cassandra avec 3 nœuds :
ccm create test -v 2.1.1 -n 3 -s
Ici test est le nom choisi pour le cluster, -n permet de choisir le nombre de nœuds. -v spécifie la version de Cassandra à utiliser.

Lancement du cluster :
ccm start
Pour vérifier que le cluster s'est bien lancé et que les nœuds sont tous là :
ccm node1 ring
Il est possible par exemple de récupérer les logs d'un nœud en particulier avec : ccm node2 showlog
Pour tout arrêter et effacer le cluster :
ccm remove
Pour afficher toutes les autres commandes disponibles faire :
ccm


Remplir la base


Il est conseillé d'utiliser cqlsh et plus cli pour manipuler les bases donc la commande est :

ccm node1 cqlsh
Ceci va lancer une session cqlsh sur le nœud 1 que nous prenons ici pour le nœud "maître".

Créer un keyspace dans le cluster Cassandra :

cqlsh> CREATE KEYSPACE cassandrademocql WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
Ici nous avons créé le keyspace cassandrademocql en lui spécifiant que nous voulions dupliquer la donnée 1 fois (replication_factor).
Pour voir les keyspaces existants deux commandes existent :

cqlsh> describe keyspaces;
ou

cqlsh> SELECT * FROM system.schema_keyspaces;
Pour entrer dans notre keyspace :

cqlsh> use cassandrademocql;
Si cette commande a bien fonctionné, le prompt devrait avoir changé et devrait faire apparaître le nom du keyspace.

Création d'une table (dans notre keyspace) :

cqlsh:cassandrademocql> CREATE TABLE Persons (
        familyName varchar,
        firstName varchar,
        age int,
        address varchar,
        PRIMARY KEY(familyName));
La création d'une table est donc plutôt similaire à ce que nous pouvons voir dans le langage SQL.

Comme précédemment, il est possible de lister les tables :

cqlsh:cassandrademocql> describe tables;
Ou d'obtenir la description d'une simple table :

cqlsh:cassandrademocql> describe table persons;
Il est possible d'ajouter une nouvelle colonne dans la table :

cqlsh:cassandrademocql> ALTER TABLE Persons ADD phone VARCHAR;
L'insertion dans la table s'effectue comme ceci :

cqlsh:cassandrademocql> INSERT INTO Persons (familyName, firstName, age, address,phone) VALUES ('BARON', 'Mickael', 36, 'Poitiers', '+33549498073');
Afficher les valeurs de la table se fait avec une commande similaire au SQL :

cqlsh:cassandrademocql> SELECT * FROM cassandrademocql.Persons;
Supprimer une famille de colonnes à partir du nom :

DROP COLUMNFAMILY Persons;

Voilà, maintenant nous sommes à priori en mesure de pouvoir jouer avec Cassandra !

{{ message }}

{{ 'Comments are closed.' | trans }}