Logo Apache Cassandra
Je vais essayer d’expliquer à travers différents posts, l’installation et l’utilisation d’Apache Cassandra avec PHP sur un environnement Mac OSX (10.6 dans mon cas), mes écris seront en partis inspirés du tutoriel anglais de Sodeso.

L’expansion du NO-SQL, que ce soit à travers Facebook (Porteur du projet Cassandra), Twitter, Google, Digg et bien d’autres m’a intrigué, sa puissance, ses performances, sa légereté et ses manières de gérer l’expansion des noeuds de serveur font partis de ses nombreux atouts.
Son avenir et sa pérénité sont entre de bonnes mains (Facebook, Google etc …), n’ayez donc pas craintes à vous investir dans cette nouvelle technologie.

La gestion des données avec Cassandra ne se fait pas de la manière traditionnelle, telle que vous pouvez le faire avec SGBD standard comme Mysql, ici, plus de schémas, de tables, de colonnes, de types de données, ni même de langage SQL. Il faudra vous faire avec les « Column », « SuperColumn », « ColumnFamily » et j’en passe d’autres que je prendrai le temps d’expliquer dans un prochain billet.

Quelques unes des fonctionnalités clefs de Cassandra

  • Tolérance aux erreurs – Les données sont automatiquement répliquées vers des noeuds multiple. La réplication entre multiple centre de données (datacenter) est supportée. Les noeuds en panne ou en échec peuvent être remplacés sans temps d’arrêt (no-downtime).
  • Décentralisé – Tous les noeuds d’un cluster sont identiques, il n’y a pas de goulot d’étranglement sur le réseau ni même de point de rupture.
  • Fléxible – Le débit d’écriture et de lecture augmente de façon linéaire lorsqu’un nouveau serveur est ajouté dans le cluster, sans interruption pour les applications.
  • Haute disponibilité – Possibilité de spécifier le niveau de cohérence concernant la lecture et l’écriture, pouvant aller de « Les écritures n’échouent jamais » jusqu’à « Bloque la lecture des copies ».

Vous pouvez en apprendre plus à propos de Cassandra et de ses capacités à travers les 2 liens suivant :

A partir de maintenant, fini la présentation, et place à l’installation de Cassandra, que vous soyez sous Windows, Linux ou même MacOsX, le dossier d’installation sera le même, pour cela, rendez-vous sur le site officiel pour récupérer la dernière version stable (0.6.1 au moment où je vous parle), préférez le téléchargement du fichier avec les binaires => « apache-cassandra-0.6.1-bin.tar.gz ».
A la suite du téléchargement, choisissez un endroit pour extraire votre archive, de dernier fera office de dossier d’installation.

Une fois extrait, vous pourrez trouver différents dossiers, voici une petite explication de leurs contenus

  • /bin – Contient tous les éxecutables, que ce soit pour Windows, Linux et MacOS X
  • /conf – Contient les fichiers de propriétés pour les logs, les mots de passes, et le plus important, le fichier de configuration pour le stockage des données
  • /interface – Contient les fichiers interface de « Thrift »
  • /javadoc – Contient la documentation Java du code source de Cassandra (Ce dernier est entièrement écrit en Java)
  • /lib – Contient les libraries tierces ainsi que celle de Cassandra

La plupart du temps, vous utiliserez les dossiers /bin et /conf.

Afin que vous puissiez lancer Cassandra sans récupérer d’erreurs, vous devez préciser quelques valeurs à certaines variables globales. Pour cela, lancer votre Terminal.app puis lancer la commande suivante

$ cd
$ sudo vi .profile

Puis rajouter les lignes suivantes (Attention à bien changer le chemin de votre dossier d’installation de Cassandra, variable « CASSANDRA_HOME »).

export PATH="/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin:$PATH"
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home"
export CASSANDRA_HOME="/Users/nom_dutilisateur/Workspace/Cassandra/apache-cassandra-0.6.1"

Maintenant, vous pouvez enfin lancer Cassandra en suivant ces quelques lignes

$ cd $CASSANDRA_HOME
$ sudo bin/cassandra

Après avoir tappé la commande ci-dessus, vous devez voir apparaître quelques lignes de logs, qui doivent ressembler en « gros » à ceci

INFO 23:49:38,446 Auto DiskAccessMode determined to be mmap
INFO 23:49:38,805 Saved Token not found. Using 151486613455334251202640655877932715425
INFO 23:49:38,806 Saved ClusterName not found. Using Test Cluster
INFO 23:49:38,814 Creating new commitlog segment /var/lib/cassandra/commitlog/CommitLog-1272577778814.log
INFO 23:49:38,876 Starting up server gossip
INFO 23:49:38,950 Binding thrift service to localhost/127.0.0.1:9160
INFO 23:49:38,954 Cassandra starting up...
INFO 00:55:38,769 LocationInfo has reached its threshold; switching in a fresh Memtable at CommitLogContext(file='/var/lib/cassandra/commitlog/CommitLog-1272577778814.log', position=507)
INFO 00:55:38,769 Enqueuing flush of Memtable(LocationInfo)@547527790
INFO 00:55:38,771 Writing Memtable(LocationInfo)@547527790
INFO 00:55:38,907 Completed flushing /var/lib/cassandra/data/system/LocationInfo-1-Data.db

Du moment que vous ne voyez pas d’exceptions de lévées, vous pouvez vous réjouir, Cassandra est donc en marche.

Comme vous avez pu le constater, l’installation de Cassandra reste très simple, cependant, avant d’avoir une base de données operationnelle, il nous manque quelques lignes de configurations que j’expliquerais dans un prochain post (Pour la parte II).

Source anglophone: Sodeso

7 commentaires sur “Installer et utiliser Apache Cassandra 0.6.x (Mac OS X) – Partie 1”

  1. [...] This post was mentioned on Twitter by Shucky. Stanislas Chollet said: Installer et utiliser Apache Cassandra 0.6.x (Mac OS X) – Partie 1 -> http://bit.ly/cmYb8C #Apache #Cassandra #MacOSX #Tuto [...]

  2. Nico

    Salut Stan,

    Très bon post sur Cassandra. Ce serait intéressant d’avoir la deuxième partie de ton article afin d’en savoir plus. Je travaille actuellement dessus avec Pandra et j’aurais aimé avoir le plus d’infos possible.

  3. @Nico, Je suis actuellement en train d’écrire la deuxième partie … malheureusement, cette partie étant plus technique assez difficile à expliquer je ne peux pas prévoir pour l’instant de date de publication, mais je vais essayer de faire en sorte qu’elle soit le plus tôt possible. ;-)

    (Si tu veux participer à son écriture, contact moi)

  4. Bon article. La 2eme partie m’intéresse aussi !

  5. Aurélien

    Salut,

    Très bon article, vivement la deuxième partie que je vais attendre avec impatience. Je suis en train de travailler dessus en ce moment et étant plus habitué au base Sql, je trouve ça assez difficile de s’y mettre :)

    Au plaisir pour le prochain post, pour plus d’infos.

  6. dadou

    bonjour, je voudrais avoir s’il vous plait le tutoriel d’installation de Cassandra sous Windows 7 pour pouvoir utiliser une base de donnée en colonne.

Ajouter un commentaire