2016-10-10 1 views
6

Je souhaite transférer des données d'un cluster Cassandra (atteint via 192.168.0.200) vers un autre cluster Cassandra (atteint via 127.0.0.1). Les données sont 523 lignes mais chaque ligne est d'environ 1 Mo. J'utilise la commande COPY FROM et COPY TO. Je reçois l'erreur suivante lorsque je délivre le COPIER commande:Cassandra CQLSH OperationTimedOut error = Délai d'attente du client. Voir Session.execute [_async] (timeout)

Error for (8948428671687021382, 9075041744804640605): 
OperationTimedOut - errors={ 
'192.168.0.200': 'Client request timeout. See Session.execute[_async](timeout)'}, 
last_host=192.168.0.200 (will try again later attempt 1 of 5). 

je fatigué pour changer le fichier ~/.cassandra/cqlshrc à:

[connection] 
client_timeout = 5000 

Mais cela n'a pas aidé. Merci pour votre aide

Répondre

1

On ne sait pas quelle version de Cassandra vous utilisez ici, donc je vais supposer 3.0.x

La fonction COPY est bon, mais pas toujours le meilleur choix (si vous avoir beaucoup de données), mais pour cela, cependant, vous voudrez peut-être vérifier certains de vos timeout settings dans cassandra

Les documents ici montrent un réglage pagetimeout aussi qui peut vous aider.

Le déplacement de données entre deux grappes peut être effectué de différentes manières. Vous pouvez utiliser l'une des suivantes:

  1. Le sstableloader
  2. Un des pilotes comme le java driver
  3. Utiliser étincelle pour copier les données d'un groupe à l'autre, like in this example
  4. En utilisant OpsCenter à clone a cluster
  5. Le cassandra bulk loader (je connais un certain nombre de personnes à utiliser)

Bien sur # 3 et # 4 ont besoin de DSE cassandra mais c'est juste pour vous donner une idée. Je n'étais pas sûr si vous utilisiez Apache Cassandra ou Datastax Enterprise Cassandra.

En tout cas, espérons que cela aide!

2

Vous pouvez incrémenter le délai d'attente de la requête (par défaut: 10 secondes), pas le délai de connexion.

Essayez:

cqlsh --request-timeout=6000