Organisation des flux dans CASSANDRA

L’organisation des flux au sein de CASSANDRA (Commitlog, Ecriture, Lecture, Replication…) est le mortier des fondations du SGBD. Vous avez été nombreux à me demander quelques explications sur le fonctionnement interne de CASSANDRA ainsi que la stratégie à adopter pour déployer un cluster de plusieurs noeuds. Il y a certaines zones d’ombres qui me reste à étudier (les relations entre «JVM» < => «Commitlog» < => Réplication) pour une parfaite compréhension du workflow d’enregistrement de la data et de sa réplication au sein d’un cluster. Si vous avez des précisions à apporter à ce billet ou même des corrections, vos recommandations et notes seront très très appréciés.

    Les flux dans CASSANDRA peuvent être séparés en deux grandes catégories à savoir :

  • Flux datas : enregistrement et lecture de la donnée,
  • Flux de services : communication entre les noeuds, gestion du partitionnement, stratégie de la réplication.

Nous allons aborder dans ce billet les flux datas : écriture et lecture de la donnée.

Lire la suite

Le PHP Tour Nantes 2012 c’est bientôt !

le 29 et 30 novembre prochain, se tiendra l’une des conférences majeures du PHP en France et traitera en arrière plan de « l’Open Data ». Comme chaque année, se pose le dilemme du choix des sessions. Il y en aura pour tous les goûts : de l’AOP aux solutions d’intégrations et de déploiements en passant par le réseau puis #phptour nantes du coté des bases de données NoSQL pour repartir sur le test unitaire avec Atoum et bien d’autre encore. Bref comme chaque année : un choix cornélien parfois frustrant car on aimerait assister à toutes les conférences. Je ne peux que vous conseiller de venir à deux collaborateurs !

Pour ma part, ce sera une première et j’aurais l’honneur de présenter « Les technologies du BigData au service de l’OpenData ». Je vous présenterai Hadoop, un framework dédié au stockage de données massives qui implémente le pattern « Map / Reduce ». Nous verrons comment utiliser PHP au travers de la lib « Hadoop-streaming » pour intégrer nos données dans le cluster. Au travers d’une démo, nous verrons également les technologies qui permettent d’extraire et de manipuler ces données structurées.

Je vous recommande de participer aux conférences suivantes qui vous permettront d’avoir une vision technique globale sur la chaine du BigData :
- « Gearman, Les rouages du travail distribué » permettant de jouer le rôle de SCHEDULER !
- « Ciel ! Mes données ne sont plus relationnelles » et « Hybridation de bases de données » qui traiteront des bases de données NoSQL largement employées au sein de plate-forme Analytics.

#phptour nantes 2012 jyserai

HADOOP, HIVE, Map Reduce avec PHP : part 1

Lorsque l’on commence à débattre sur le «BIG DATA», on finit toujours par discuter du stockage. «Hadoop», de par son architecture et son fonctionnement, n’impose aucune contrainte technique sur le stockage de la donnée. Intégrant nativement le concept de Map & Reduce, «Hadoop» est un candidat sérieux pour les besoins de stockage massif et d’extraction qu’impose le «BIG DATA». Facebook a retenu «Hadoop» comme entrepôt de données pour ses calculs de statistiques marketing. Dans un précédent article consacré à «CASSANDRA», nous avions conclu «qu’une architecture permettant l’extraction, la manipulation et l’interprétation socio-économique de données massives, était composée de plusieurs maillons technologiques». «Hadoop» est l’un de ces chainons.

Architecture technique Hadoop

Architecture technique Hadoop

Le schéma ci-dessus décrit l’architecture technique d’une entreprise de e-commerce vendant des produits alimentaires pour animaux. L’objectif pour la direction opérationnelle est d’extraire des métriques marketing afin d’orienter le catalogue de vente et d’augmenter son CA. Nous allons, avec ce support, découvrir «Hadoop», la manipulation de son système de fichier et par la suite utiliser un outil pour extraire des métriques : «HIVE». Je vous propose d’aborder les points suivants :

  • installation d’«Hadoop»,
  • découverte et manipulation d’«HDFS»,
  • réalisation de Map et de Reduce en PHP avec «Hadoop streaming»,
  • découverte de «HIVE»,

Lire la suite

Débuter avec CASSANDRA et PHP

CASSANDRA est de la famille des SGBD dit «NoSQL». L’abandon de certains dogmes et le choix du compromis où les données ne sont plus liées de manière relationnelle (clef primaire / clefs étrangères), ont permis de répondre efficacement aux besoins croissants et gourmands des mécanismes d’analyse de données massives et proposent par la même occasion, des architectures techniques scalables (Master to Master) et redondantes (Multi data-center).

Les bases de données NoSQL peuvent être de type document, graphe, colonne ou clés/valeurs. Ces solutions ont émergé sous l’impulsion de grosses entreprises du web qui ont vu exploser le volume de leur DATA : Twitter, Facebook, Amazon ou encore Google. CASSANDRA n’est qu’un maillon de la chaine dans l’architecture technique qui va permettre aux décisionnels de traiter, d’extraire et de faire parler les datas.

CASSANDRA peut être utilisé en cluster et offrir tout ce qu’un cluster a à offrir comme par exemple :

  • tolérance aux pannes,
  • mécanisme de «scalling» linéaire,
  • rapidité sur les écritures,
  • réplication simplifiée et bien d’autres choses encore

Dans un premier point, on abordera la structure de CASSANDRA pour bien comprendre comment sont enregistrées les données. Dans un deuxième point, on installera CASSANDRA et nous ferons nos premiers scripts PHP.

Lire la suite