2
var cluster: Cluster = null
var session: Session = null
cluster = Cluster.builder().addContactPoints("192.168.1.3","192.168.1.2").build()
val metadata = cluster.getMetadata()
printf("Connected to cluster: %s\n",
metadata.getClusterName())
metadata.getAllHosts() map {
case host =>
  printf("Datatacenter: %s; Host: %s; Rack: %s\n",
    host.getDatacenter(), host.getAddress(), host.getRack())

}

このコードを使用して cassandra クラスターに接続できません。それは私にエラーを与えています-

[NoHostAvailableException: All host(s) tried for query failed (tried: /192.168.1.3 ([/192.168.1.3] Cannot connect), /192.168.1.2 ([/192.168.1.2] Cannot connect))]

上記のコードで私の間違いは何ですか。

4

3 に答える 3

0

ポート 9042 を使用して、次のように ip local host または他のマシンとの接続を試みることができます。

public String serverIP = "127.0.0.1"; //change ip with yours
//public String serverIP = "52.10.160.197"; //for prod
public String keyspace = "database name";  //for prod
//public String keyspace = "dbname_test";  //for staging
Cluster cluster = Cluster.builder().addContactPoint(serverIP).build();
Session session = cluster.connect(keyspace);
于 2015-05-07T05:38:49.727 に答える
0

Cassandra へのリモート アクセスは、thrift ポート経由で行われます (ただし、JMX ポートを使用して一部の限定的な操作を実行できることに注意してください)。

thrift ポートは、rpc_port パラメーターによって cassandra.yaml で定義されます。デフォルトは 9160 です。cassandra ノードは、サーバーのネットワーク カードの IP アドレスにバインドする必要があります。127.0.0.1 またはループバック インターフェイスの localhost であってはなりません。 IP、これにバインドすると、直接のリモート アクセスが妨げられます。バインドされたアドレスは、cassandra.yaml の rpc_address パラメーターで構成します。これを 0.0.0.0 に設定すると、「すべてのネットワーク インターフェイスをリッスンする」という意味になりますが、これは適切である場合とそうでない場合があります。

接続するには、次を使用できます。

The cassandra-cli in the cassandra distribution's bin directory provides simple get / set / list operations and depends on Java
The cqlsh shell which provides CQL access to cassandra, this depends on Python
A higher level interface such as Apollo
于 2015-03-12T06:00:41.493 に答える