我正在尝试从我的应用程序执行.cql脚本,该脚本是用Scala编写的。如果我登录Cassandra,它确实有效,但是当我尝试自动化任务时它失败了。这是我到目前为止所得到的:
def executeScript(path: String, user: String, password: String, host: String): Unit = {
val command = s"cqlsh -f $path -u '$user' -p '$password' $host;"
val execution = command.!
}
这是一个被抛出的例外:
Traceback (most recent call last):
File "/usr/bin/cqlsh.py", line 2434, in <module>
main(*read_options(sys.argv[1:], os.environ))
File "/usr/bin/cqlsh.py", line 2413, in main
encoding=options.encoding)
File "/usr/bin/cqlsh.py", line 479, in __init__
load_balancing_policy=WhiteListRoundRobinPolicy([self.hostname]),
File "/usr/share/cassandra/lib/cassandra-driver-internal-only-3.10.zip/cassandra-driver-3.10/cassandra/policies.py", line 417, in __init__
socket.gaierror: [Errno -2] Name or service not known
因为它适用于卡桑德拉,所以我不知道要改变什么。任何帮助将不胜感激。
答案 0 :(得分:0)
问题出在最后的message[0] == 'q'
字符中 - 只需在;
之后删除它,否则它将作为主机名的一部分传递