遠端訪問在本地環回 IP/埠 127.0.0.1 上執行的 cassandra
我使用 ccm 已經有一段時間了,它是一個非常棒的工具來測試管理員的東西。現在,我真的想通過嘗試從遠端主機(不是本地)使用基於 Thrift 的 pycassaShell 客戶端訪問執行 cassandra 的 ccm 來測試建模數據。我的設置是這樣的:
可以說,這台機器的私有IP是:10.11.12.13(只是一個例子)
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:67392708 errors:0 dropped:0 overruns:0 frame:0 TX packets:67392708 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:7398829042 (6.8 GiB) TX bytes:7398829042 (6.8 GiB) lo:1 Link encap:Local Loopback inet addr:127.0.0.2 Mask:255.255.255.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 lo:2 Link encap:Local Loopback inet addr:127.0.0.3 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 lo:3 Link encap:Local Loopback inet addr:127.0.0.4 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1
和 127.0.0.1 (node1)、127.0.0.2 (node2)、127.0.0.3 (node3)、127.0.0.4 (node4)
$ ccm status node1: UP node3: UP node2: UP node4: UP
如何從非本地主機連接到任何實例?當我這樣做時:pycassaShell –host 10.11.12.13 –port 9160,它會引發異常,
thrift.transport.TTransport.TTransportException:無法連接到 10.11.12.13:9160
有沒有辦法讓它工作?
參考
如果您不熟悉,CCM 或 Cassandra Cluster Manager是用於管理 Cassandra 節點實例的腳本。
摘抄
用於在 localhost 上創建、啟動和刪除 Apache Cassandra 集群的腳本/庫。
ccm 和 ccmlib 的目標是讓本地機器上的小型集群易於創建、管理和銷毀。它用於測試 Cassandra 集群。
您可以使用 ssh 建立一個隧道,以使 pycassaShell 看起來是從執行 Cassandra 的伺服器連接的。
在遠端主機上,使用以下命令建立 SSH 隧道 -
ssh -N -L 9160:127.0.0.1:9160 10.11.12.13
然後在遠端主機上,執行
pycassaShell --host 127.0.0.1 --port 9160
或者,您可以設置 ccm 以偵聽非本地主機埠。