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

Hadoop streaming avec PHP et extraction HIVE – part 2

Dans cette suite de billets consacrés à HADOOP, HIVE et Map Reduce, nous allons présenter «Hadoop streaming» et voir comment il est simple d’utiliser les fonctions natives de Map Reduce du framework «Hadoop» avec PHP.

En reprenant le schéma de la première partie consacré à l’introduction d’«hadoop» et à son installation, nous nous attarderons sur les services de «Logs», «App Engine», «HIVE» et «HDFS» de l’architecture. Pour avoir une idée de comment s’articule l’ensemble de ces services jusqu’à la visualisation des métriques marketing, je vous propose le plan suivant :

  • collecte et centralisation des logs,
  • manipulation des logs et utilisation de Map Reduce,
  • introduction à HIVE,
  • extraction de données.

Lire la suite

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