如何检查Cassandra是否准备好了

时间:2017-12-30 14:32:09

标签: cassandra

我有一个在Docker中运行的Cassandra,我想在数据库准备好时启动CQL脚本。我尝试检查端口以检测它何时准备好:

while ! nc -z localhost 7199; do
    sleep 1
done
echo "Cassandra is ready"
cqlsh -f ./createTables.cql

但是在数据库准备就绪之前打开了端口,因此cqlsh失败了。如何正确检查Cassandra状态并启动脚本?提前谢谢。

1 个答案:

答案 0 :(得分:3)

首先,您需要等待另一个端口 - 9042 - 这是CQLSH使用的端口。

另一种方法也可能是等待执行sqlsh而不是nc(或者作为第二步,因为nc执行起来要快得多)。例如,您可以使用类似命令的内容:

while ! cqlsh -e 'describe cluster' ; do
    sleep 1
done

要等到卡桑德拉做好准备......