2013-05-01 1 views
3

J'essaye de construire une couche de services de données en utilisant Cassandra comme le magasin principal. Je suis nouveau à Cassandra et je ne sais pas quel client utiliser pour cassandra - thrift ou cql 3? Nous avons beaucoup de travaux mapreduce en utilisant Amazon elastic mapreduce (EMR) qui va lire/écrire les données de cassandra à haut volume. Le volume total de données sera de> 100 To avec des milliards de lignes à Cassandra. Les tâches mapreduce peuvent être lues ou écrire lourdement avec des qps élevés (> 1000 qps). Les exigences sont les suivantes:Quel client cassandra utiliser pour l'intégration de haoop?

  • Simplicité du code client. Il semble que Thrift ait une intégration intégrée avec Hadoop pour le chargement de données en masse à l'aide de sstableloader (http://www.datastax.com/dev/blog/bulk-loading).
  • Possibilité de définir de nouvelles colonnes lors de l'exécution. Nous pourrions avoir besoin d'ajouter plus de colonnes en fonction des besoins de l'application. Il semble que cql3 n'autorise pas la définition dynamique des colonnes lors de l'exécution.
  • Performances de lecture/écriture en masse. Je ne sais pas quel client est le meilleur. Cependant, je trouve ce poste qui prétend client Thrift a de meilleures performances pour un volume élevé de données: http://jira.pentaho.com/browse/PDI-7610?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Je ne pouvais trouver aucune source d'information qui répond à cette question. Appréciez si vous pourriez aider avec ceci puisque je suis sûr que ceci est un problème commun pour la plupart des gens et bénéficierait la communauté globale.

Merci beaucoup à l'avance.

-Prateek

+0

d'abord Thrift oublier, son API de base de Cassandre, essayez quelques API wrapper de, simple code. (Pilote CQL natif, Astyanax, Hector, Pélops). Tous sont basés sur Java – abhi

Répondre

1

Hadoop et Cassandra sont tous deux écrits en Java donc certainement choisir un pilote basé sur Java. En ce qui concerne la simplicité du code, j'opte pour Astyanax, leur page wiki est vraiment bonne et la documentation est solide à tous les niveaux. Et oui, atyanax vous permet de définir les colonnes à l'exécution comme vous le souhaitez, mais sachez que les API basées sur l'épargne sont remplacées par cql apis.

Si toutefois vous voulez descendre la route pure cql3, le pilote datastax's est ce que je vous conseille d'utiliser. Il permet des connexions asynchrones et est continuellement mis à jour (view the logs). Le code est également très propre bien que la documentation ne soit pas encore là, mais il y a des tests dans la source que vous pouvez regarder.

Mais pour être honnête, il y a tellement de questions sur les API que vous devez lire si eux et se faire une opinion par vous-même:

Aussi pour la performance ici quelques benchmarks (ils sont cependant démodés!) Montrant que cql rattrape (et quelque peu dépassant quand je t vient aux déclarations préparées) Thrift:

Questions connexes