在cqlsh命令

时间:2017-10-04 06:43:14

标签: cassandra datastax cql cqlsh cassandra-2.1

我们正在使用pig脚本从hive将数据导出到Cassandra。 该脚本将截断cassandra表并运行export。

要执行TRUNCATE部分,我们使用以下命令。但是,如果该节点此刻停止,脚本将失败。

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

是否有其他方法可以运行此作业,以便在host1关闭时可以联系其他主机?

否则

我们可以使用这个 -

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

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

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以尝试这样的事情:

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"

这基本上意味着如果第一个命令失败,第二个命令将被执行,如果第二个命令失败,第三个命令将被执行。

另外,请记住,由于您正在进行一致性,因此所有拥有数据的节点都必须启动。

答案 1 :(得分:0)

您可以在尝试连接之前检查主机是否已启动: 一个选项是查看端口是否在远程主机上打开(使用nc:nc -zv <address> <port>)。甚至使用nodetool -h 127.0.0.1 status来获取节点列表。像nodetool status|grep UN|awk {'print $2'}

这样的东西