2017-10-04 9 views
0

Nous utilisons un script cochon pour exporter des données dans ruche de Cassandra. Le script tronquera la table cassandra et exécutera l'exportation.Utilisation de plusieurs hôtes dans la commande cqlsh

Pour exécuter la partie TRUNCATE, nous utilisons la commande ci-dessous. Mais si ce nœud est en panne pour le moment, le script échoue. Existe-t-il un autre moyen d'exécuter ce travail afin qu'il puisse contacter un autre hôte si host1 est arrêté?

Ou bien

pouvons-nous utiliser ce -

host=("host1" "host2" "host3") 

$ cqlsh -u user -p password $host -e "USE randomkeyspace; CONSISTENCY ALL;TRUNCATE TABLE randomtable" 

Merci!

Répondre

0

vous pouvez vérifier que l'hôte est avant tente de s'y connecter: une option est de voir si le port est ouvert sur l'hôte distant (en utilisant nc: nc -zv <address> <port>). ou même utiliser nodetool -h 127.0.0.1 status pour obtenir la liste des nœuds. quelque chose comme nodetool status|grep UN|awk {'print $2'}

2

Vous pouvez essayer quelque chose comme ceci:

cqlsh -u user -p password host1 -e "USE randomkeyspace; CONSISTENCY ALL;TRUNCATE TABLE randomtable" || cqlsh -u user -p password host2 -e "USE randomkeyspace; CONSISTENCY ALL;TRUNCATE TABLE randomtable" || cqlsh -u user -p password host3 -e "USE randomkeyspace; CONSISTENCY ALL;TRUNCATE TABLE randomtable" 

ce qui signifie essentiellement que si la première commande échoue, la seconde sera exécutée et si la seconde échoue, le troisième sera exécuté. En outre, gardez à l'esprit que puisque vous faites un ALL CONSISTENCY, tous les nœuds qui ont vos données doivent être en haut.