我正在 AWS 的私有子网上运行 cassandra 社区版本 3.11.13。我正在尝试使用以下命令创建到 cassandra 的隧道。
ssh -vvv -N -L 9042:cass-ip:9042 username@jumphost-ip
ssh -vvv -N -L 9160:cass-ip:9160 username@jumphost-ip
现在使用 nc 命令我可以看到连接正常。
nc -dvzw50 localhost 9160
Connection to localhost 9160 port [tcp/*] succeeded!
nc -dvzw50 localhost 9042
Connection to localhost 9042 port [tcp/*] succeeded!
但是当我尝试运行 cqlsh localhost 时,它给我操作超时。以下是我运行 ssh 隧道命令时的输出。
debug2: channel 2: chan_shutdown_write: shutdown() failed for fd 7: Transport endpoint is not connected
任何帮助表示赞赏
调试后缩小到存储部分。我将卷安装为数据目录,如果我卸载它并将 data_directory 设置为默认位置,则它可以工作,但不能与安装分区一起使用。我可以看到挂载分区上的所有权限与默认位置完全相同。
我注意到您提到,当您保留数据目录的默认配置时,您的设置将有效:
但是当您将其配置为指向另一个装载/卷时,您将无法连接到 Cassandra 实例。
这向我表明问题不在于 SSH 隧道,而在于 Cassandra 实例未运行。
您需要查看 Cassandra 启动消息,
/var/log/cassandra/system.log
以了解重新配置数据目录时它为何无法启动的线索。我最好的猜测是您没有指定正确的路径,因此 Cassandra 无法找到挂载点。修复此问题后,您可以尝试启动 Cassandra 并通过 SSH 隧道测试连接。干杯!
我的坏问题终于解决了。所以我们有 cqlsh.py 文件,它需要调整 2 个参数。
理想值设置为 10 秒,将超时值增加到 60 后,我可以毫无问题地进行连接