Your SlideShare is downloading. ×
Apache Cassandra - Concepts et fonctionnalités
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Apache Cassandra - Concepts et fonctionnalités

459
views

Published on

Apache Cassandra - Concepts et fonctionnalités, 25/02/2014 …

Apache Cassandra - Concepts et fonctionnalités, 25/02/2014

Présentation de Cassandra pour le premier évènement "Lyon Cassandra Users" (organisé par DataStax & Zenika).

* Présentation de Cassandra
* Concepts clés (Théorie & Architecture)
* Installation
* Les outils DataStax : DevCenter et OpsCenter
* Modèle de données
* Requêtes

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
459
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
33
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Apache Cassandra Concepts et fonctionnalités Romain Hardouin Lyon Cassandra Users
  • 2. Plan Présentation de Cassandra Concepts clés Installation Les outils DataStax : DevCenter et OpsCenter Modèle de données Requêtes
  • 3. Présentation de Cassandra “Semblable à l'Aphrodite d'or” – Homère
  • 4. NoSQL* * ≠ Big Data Lyon Cassandra Users
  • 5. Big Data* * 3V = Volume, Vélocité, Variété Lyon Cassandra Users
  • 6. Cassandra ● SGBD NoSQL orienté colonnes ● Distribué : P2P ● Haute disponibilité : no SPOF ● Massivement parallèle ● Scalabilité linéaire ● Multi data centers ● Réplication native ● Open source : Facebook → Apache
  • 7. What were the top reasons for going with Cassandra? ● No single points of failure ● Highly scalable writes (we have highly variable write traffic) ● A healthy and productive open source community – Ryan King Lyon Cassandra Users
  • 8. Qui l'utilise ?
  • 9. Qui l'utilise ?
  • 10. Concepts clés Architecture
  • 11. Cluster ● Noeud = Instance de Cassandra ● Cluster = Ring = Ensemble des noeuds
  • 12. Théoreme CAP ● Seuls deux des trois sont réalisables Haute disponibilité A C Cohérence @eric_brewer P Tolérance aux partitionnements
  • 13. Théoreme CAP ● En pratique – Continuum – Consistency Level (CL) – A Latence ! C P
  • 14. Cohérence in fine ● ● ● Eventually consistency A un instant T, la donnée la plus récente n'est pas présente partout Pas de suppression instantanée – Tombstone
  • 15. Cohérence paramétrable ● Combien de répliques écrites/lues avant aquittement ● ● ● – ONE, QUORUM, ALL ANY SERIAL Datacenter aware : ● ● LOCAL_ONE, LOCAL_QUORUM EACH_QUORUM
  • 16. Gossip ● Protocole epidémique de communication P2P ● Echange d'informations chaque seconde ● Réseau overlay maillé complet
  • 17. Partitioner ● Token = f – – ● Murmur3, MD5 BOP Token => noeud (row) Lyon Venise pays gentilé FR Lyonnais pays gentilé IT Vénitiens
  • 18. Facteur de réplication ● Nombre d'occurrences d'une donnée – Replication Factor (RF) RF = 2
  • 19. Réplication ● Replica placement strategy – NetworkTopologyStrategy Lyon RF = 2 pays gentilé FR Lyonnais
  • 20. Snitch ● Comment connaitre la topologie du réseau ? – PropertyFile, GossipingPropertyFile – EC2(MultiRegion) – RackInferring 10 . 1 . 2 . 3 DC Noeud Rack
  • 21. Coordinator ● P2P => on contacte n'importe quel noeud ● Noeud contacté = coordinateur ● Le coordinateur contacte les répliques (proxy) Client
  • 22. Ecriture ● Exemple avec RF = 2, CL = ONE Client
  • 23. Repair ● Hinted-handoff – ● Read repair – ● Fenêtre paramétrable Probabilité paramétrable Anti-entropy repair – Indispensable – Généralement hebdomadaire
  • 24. Installation
  • 25. Installation ● Linux – Production ● Windows ● Mac OS ● Ne pas mixer les OS
  • 26. Java ● Oracle JDK – – ● Cassandra 1 : v6 Cassandra 2 : v7 Production – Java Native Access (JNA)
  • 27. Debian ● Apache – deb http://www.apache.org/dist/cassandra/debian V main ● ● V = 12x, 20x DataStax – deb http://debian.datastax.com/community stable main ● ● ● Cassandra, DevCenter, OpsCenter, DSC apt-get install cassandra → v2.0 apt-get install cassandra=1.2.15
  • 28. RedHat / CentOS ● DataStax – http://rpm.datastax.com/community ● Cassandra, DevCenter, OpsCenter, DSC
  • 29. Les outils DataStax DevCenter et OpsCenter
  • 30. DevCenter
  • 31. OpsCenter
  • 32. OpsCenter
  • 33. Modèle de données SGBD orienté colonnes
  • 34. Column ● Identifiée par son nom ● Valeur et nom typés – blob, int, text, timestamp, timeuuid, uuid, ... ≤ 9 MO conseillé Max 2 GO Nom Valeur Timestamp Résout les conflits => NTP, VMWare tools
  • 35. Column ● Time to live – Ne remplace pas une purge métier Nom Valeur Timestamp TTL
  • 36. Column ● Compteur distribué – Type spécial Nom Valeur Timestamp
  • 37. Column ● Nom porteur d'informations – Colonne composite – Intérêt : requêtage “ rhone:* ” rhone:bron rhone:lyon rhone:villeurbanne Valeur Timestamp Valeur Timestamp Valeur Timestamp
  • 38. Row ● Identifiée par sa clé (typée) ● Contient des colonnes, triées par nom ● Une ligne est stockée sur un seul noeud * 2.109 Nom colonne 1 ... N Clé Valeur colonne 1 Timestamp * hors réplication
  • 39. Column Family (CF) ● Regroupe les lignes et donc les colonnes ● Les lignes ne sont pas triées * ● Arena allocation : ≤ 1000 CF Nom CF Colonne 1 Clé 1 ... N Valeur 1 Timestamp ... ... Colonne 1 Clé N ... N Valeur 1 Timestamp * sauf si le ByteOrderedPartitioner est utilisé
  • 40. Keyspace ● Regroupe les column families ● Peut coûteux en mémoire Nom keyspace 1 Nom CF N Nom CF 1 Colonne 1 ... N Colonne 1 ... N Clé 1 Clé 1 Valeur 1 Timestamp Timestamp Colonne 1 ... N ... Valeur 1 Timestamp Valeur 1 ... Colonne 1 ... N ... Valeur 1 Timestamp
  • 41. Keyspace ● Exemple – Timestamp non représentés meetup.com members events 30a9e2d2 ... 31369e8e event_name event_date Cassandra 2014-02-25 ... ... event_name event_date Hadoop 2014-03-13 bob firstname ... Robert ... ... bill firstname William ...
  • 42. Requêtes SELECT * FROM big_data
  • 43. NoSQL ● Les applications doivent en faire plus – – ● Moins de fonctionnalités que les SGBDR Dénormalisation Pas de transactions – V1.0 : Row level isolation – v2.0 : Lightweight transactions, CAS ● Pas de jointures ● Pas de «GROUP BY»
  • 44. Par où commencer ● Penser “requête” – – ● Critères de recherches Tris Penser “alimentation” – Comment les données arrivent ? – Données brutes ?
  • 45. Penser "requêtes" ● Comment faire sans jointures ? – – ● Peu de données : 2 requêtes + filtre mémoire Big data : autant de Column Family que de requêtes Exemple : – Rechercher les meetup d'une ville – SELECT * FROM events WHERE city = 'Lyon' – Column Family "events by city"
  • 46. "events by city" TimeUUID events_by_city lyon 31369e8e ... 30a9e2d2 <valueless> ... <valueless> Valueless pattern events 30a9e2d2 ... 31369e8e event_name event_date Cassandra 2014-02-25 ... ... event_name event_date Hadoop 2014-03-13
  • 47. Penser "requêtes" ● Comment faire sans aggregation ? – Peu de données : travail en mémoire – Big data : Hadoop, Hive, Pig, etc.
  • 48. Penser "alimentation" Exemple : séries temporelles => wide rows – Données financières ● – Actions, produits dérivés, etc. Données brutes ● Capteurs, satellites, etc. sensors Sensor_1:<date> e598170e <blob> e53a9da4 ... e408c24e <blob> ... <blob> 100 mesures / s => 8 640 000 colonnes
  • 49. CQL ● Simplifie l'utilisation – ● cqlsh, DevCenter CQL 3 – Cassandra >= 1.2 CQL Implémentation
  • 50. CQL CREATE TABLE members ( username text, firstname text, email list<text>, PRIMARY KEY (username) ); members bob firstname ... Robert ... ... bill ... firstname ... William INSERT INTO members (username, firstname, email) VALUES ('bob', 'Robert', ['bob@gmail.com', 'bob@yahoo.fr'] );
  • 51. Référence DataStax : datastax.com www.datastax.com/docs Interview Ryan King (Twitter) : http://nosql.mypopescu.com/post/407159447/cassandra-twitter-an-interview-with-ryan-king

×