2012-09-02 82 views

回答

44

遠程訪問Cassandra是通過它的節儉端口(儘管注意JMX端口可以用來執行一些有限的操作)。

的節儉口在cassandra.yaml所定義的rpc_port參數,默認爲9160你卡桑德拉節點應綁定到服務器的網卡的IP地址 - 它不應該是127.0.0.1localhost這是環回接口的IP,綁定到這將阻止直接遠程訪問。您使用cassandra.yaml中的rpc_address參數配置綁定的地址。將其設置爲0.0.0.0表示「偵聽所有網絡接口」,這可能適用於您,也可能不適合您。

爲了讓你可以使用一個連接:

  • 卡桑德拉-CLI在卡桑德拉分佈的bin目錄下提供了簡單的get/set /列表操作,並依賴於Java
  • 的cqlsh外殼,提供定製列表訪問對Cassandra的,這依賴於Python的
  • 一個更高層次的接口使用天青如Apollo
+1

連接被拒絕:(甚至當我嘗試遠程登錄端口9160我的服務器... – user1588782

+1

你能運行這些命令: PS英法| grep的CassandraDaemon; netstat的-lntp | grep的 這將顯示您的cassandra正在監聽的IP /端口組合。另外,儘量避免通過節儉端口進行通信 - 通過任何非節儉的數據都可能導致OutOfMemory情況(這是一個相當討厭的「功能」 - 測試並確認這一點,以隨機文本telnet到節儉端口類型,返回,然後在接下來的幾分鐘內監控CassandraDaemon pid的內存使用情況)。 – CraigJPerry

+1

請注意Cassandra自兩年前版本0.7.0以來對Thrift端口上的隨機垃圾很有效。 – jbellis

3

對任何人來說,這個問題可能是你需要創建一個公共IP地址,因爲虛擬IP指向雲服務本身而不是虛擬機。你可以找到更多的信息in this post

3

現在任何人發現這個問題,最好的答案是過時的。

Apache Cassandra的thrift接口已棄用,並將在Cassandra 4.0中刪除。默認的客戶端端口現在爲9042.

正如Tyler Hobbs所述,您需要確保rpc_address參數未設置爲127.0.0.1或localhost(默認爲localhost)。如果你把它設置爲0.0.0.0監聽所有的接口,你還需要設置broadcast_rpc_address要麼節點的公共或私有IP地址(取決於您打算如何連接到卡桑德拉)

卡桑德拉-CLI也已過時,阿波羅不再活躍。用cqlsh代替cassandra-cli,用Java driver代替Apollo。

我不建議讓JMX端口可以遠程訪問,除非您通過啓用SSL和強身份驗證來啓用secure it properly

希望這是有幫助的。