2013-08-04 2 views
0

Je cours une configuration de cluster de 4 nœuds d'apache-cassandra-1.2.8 et essaie de charger environ 25 millions d'enregistrements. Le cluster est configuré avec le partitionnement par défaut (murmure) et des jetons attribués en fonction de l'algorithme fourni hereDistribution de charge de Cassandra - inégale 1.2.8

Le nodetool affiche la configuration en anneau comme ci-dessous:

[root @ node1 apache-cassandra-1.2.8 ] # bin/nodetool -host anneau 10.5.50.250 -p 7199

Datacenter: datacenter1 ========== Répliques: 1

Adresse Etat Etat rack charge Owns jeton
-461168601842738790
127.0.0.1 RACK1 Up normale 6,29 Go 25,00% 4611686018427387904
127.0.0.2 RACK1 Up normale 613,9 Mo 2,50% 0
127.0.0.3 RACK1 Up normale 6,29 Go 25,00% -9223372036854775808
127.0.0.4 RACK1 Haut Normal 12,13 Go 47,50% -461168601842738790

Comme vous pouvez le voir, la charge n'est pas distribuée uniformément (25% sur chaque nœud). Mon hypothèse concernant le protocole de murmure est-elle fausse ici ou ma configuration n'est-elle pas configurée correctement?

Avez-vous des idées sur la façon d'obtenir un bon équilibrage de charge avec le partitionnement par défaut de murmure par défaut qui est supposé être plus rapide que le partitionneur aléatoire précédent?

Répondre

3

Le problème est le jeton pour 127.0.0.4 a un chiffre manquant à la fin, il devrait être -4611686018427387904.

Vous devriez également utiliser des nœuds virtuels, car cela vous permet d'équilibrer la charge sans calculer les jetons et il n'est pas nécessaire de les rééquilibrer après la mise à l'échelle de votre cluster.

Questions connexes