从Scala运行cqlsh脚本

时间:2018-05-04 11:40:22

标签: scala cassandra cqlsh

我正在尝试从我的应用程序执行.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

因为它适用于卡桑德拉,所以我不知道要改变什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

问题出在最后的message[0] == 'q'字符中 - 只需在;之后删除它,否则它将作为主机名的一部分传递