2012-06-06 4 views
2

J'avais installé Cassandra sur 1 noeud et l'inondé avec des données. Ensuite, j'ai configuré un deuxième noeud, son jeton initial, sa graine, etc. et j'ai lancé Cassandra dessus. Maintenant, quand j'ai couru mon code Hector sur un cluster de 1 noeud, il m'a donné toutes les données. Mais quand je cours le même code sur le groupe de 2 noeuds, je reçois moins de données (moins de colonnes et de lignes). Je ne comprends pas ce que je fais de mal. J'ai même essayé d'ajouter une chaîne d'hôtes en utilisant CassandraHostConfigurator mais je ne reçois toujours pas toutes les données. J'ai aussi essayé de courir, mais la réparation nodetool toujours face à la même questionCassandra et Hector question

S'il vous plaît aidez-moi

Répondre

1

Lorsque vous ajoutez des nœuds dans le cluster, vous devriez commencer ce nœud avec auto_bootstrap: true dans cassandra.yaml de sorte que les autres nœuds du cluster (dans votre cas le seul nœud) diffuseront le nouveau nœud de données (selon le jeton).

Modifier Pour la Casssandra-1.0 partir il n'y a aucune option Bootstrap- dans ce cas, nous devons commencer deuxième nœud avec le nouveau jeton calculé, il va commencer le streaming data.once le streaming est terminé nodetool move <new_token> course. Pour plus d'informations, voir Adding nodes to cluster

Si cela n'est pas fait, le deuxième nœud n'aura pas les données qu'il est censé contenir selon le jeton. Et quand vous essayez de lire des données sur Cassandra Il peut être à la recherche des données sur le nœud nouvellement ajouté en fonction du jeton, mais comme il n'y a pas de données, vous n'obtenez pas le résultat correct.

+0

Mais il n'y a pas possibilité de auto_bootstrap à Cassandra 1.1.0. Alors, où dois-je spécifier cette option? – user1439690

0
  • S'il vous plaît vérifier tous les pare-feu, configuration iptables est le nœud accepte de communiquer à un autre

après avoir ajouté un nœud à l'anneau, utilisez nodetool ring pour voir exemple de chargement de données mon cluster ont 3 noeuds résultat similaire :

192.168.23.84 datacenter1 RACK1 Up normale 37,52 Go 33,33%
192.168.23.85 datacenter1 RACK1 Up normale 37,5 Go 33,33%
192.168.23.86 datacenter1 RACK1 Up normale 37,5 Go 33,33%

si semblable que, lorsque u utiliser hector, utilisez ce code pour vérifier la demande hector à quel serveur:

MutationResult result = mutator.execute(); 
logger.info(" host:" + result.getHostUsed().getHost()); 

essayer d'écrire beaucoup temps de revérifier l'hôte de destination est contenir tout votre hôte.

-je utiliser ce CassandraHostConfigurator pour ajouter un grand nombre hôte à un cluster lorsque l'utilisation Hector exemple:

CassandraHostConfigurator cassandraHostConfigurator = new CassandraHostConfigurator(
       "192.168.23.84:9160,192.168.23.85:9160,192.168.23.86:9160"); 
cluster = HFactory.getOrCreateCluster("testcluster", cassandraHostConfigurator); 
Questions connexes