簡體   English   中英

如何在ruby中連接到EC2 Cassandra實例

[英]How to connect to an EC2 cassandra instance in ruby

我是Cassandra的新手,所以我按照本指南介紹了如何在EC2實例上設置Cassandra。 我已經完成所有設置並准備就緒,但是由於某種原因,我無法從ruby進行連接。 這是我一直在嘗試的方法:

 require 'cassandra'
 client = Cassandra.new('PERSON', 'ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:9160')
   # =>
   #  <Cassandra:0x100cda3b0
   #    @auto_discover_nodes = true,
   #    @column_name_class = {},
   #    @column_name_maker = {},
   #    @is_super = {},
   #    @sub_column_name_class = {},
   #    @sub_column_name_maker = {},
   #    attr_accessor :keyspace = "PERSON",
   #    attr_reader :servers = [
   #      [0] "ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:9160"
   #    ],
   #    attr_reader :thrift_client_class = ThriftClient < AbstractThriftClient,
   #    attr_reader :thrift_client_options = {
   #      :transport_wrapper => Thrift::FramedTransport < Thrift::BaseTransport,
   #      :thrift_client_class => ThriftClient < AbstractThriftClient,
   #      :protocol => Thrift::BinaryProtocolAccelerated < Thrift::BinaryProtocol
   #    }
   #  >

然后,當我嘗試使用客戶端時,出現此錯誤:

client.keyspaces
  #=> ThriftClient::NoServersAvailable: No live servers in [ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:9160].

我可以通過SSH進行連接,所以我不確定在這里做錯了什么。

更新:

我的安全組包括:

端口: 9160

通訊協定: tcp

來源: sg-xxxxxxxx

與Cassandra服務器的連接“源”在哪里?

您使用的安全組僅向組sg-xxxxxxxx中的實例打開端口9160。 如果您嘗試從其他任何地方(例如外部世界)進行連接,那么您將不會成功。

有兩件事要檢查:

  • 您在客戶端和/或服務器上運行防火牆嗎?
  • 是否允許您的客戶端從EC2安全組訪問服務器?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM