Error while connecting to Cassandra using Java Driver for Apache Cassandra 1.0 from com.example.cassandra

前端 未结 11 573
感动是毒
感动是毒 2020-12-29 21:38

While connecting to Cassandra client using java driver for Cannsandra by DataStax, it is throwing following error..

Exception in thread \"main\" com.datastax

相关标签:
11条回答
  • 2020-12-29 22:18

    In my case, I ran into this issue as I used the default RPC port of 9160 during connection. One can find a different port for CQL in cassandra.yaml -

    start_native_transport: true
    # port for the CQL native transport to listen for clients on
    native_transport_port: 9042
    

    Once I changed the code to use port 9042 the connection attempt succeeded -

    public BinaryDriverTest(String cassandraHost, int cassandraPort, String keyspaceName) {
        m_cassandraHost = cassandraHost;
        m_cassandraPort = cassandraPort;
        m_keyspaceName = keyspaceName;
    
        LOG.info("Connecting to {}:{}...", cassandraHost, cassandraPort);
        cluster = Cluster.builder().withPort(m_cassandraPort).addContactPoint(cassandraHost).build();
        session = cluster.connect(m_keyspaceName);
        LOG.info("Connected.");
    }
    
    public static void main(String[] args) {
        BinaryDriverTest bdt = new BinaryDriverTest("127.0.0.1", 9042, "Tutorial");
    }
    
    0 讨论(0)
  • 2020-12-29 22:18

    Just posting this for people who might have the same problem as I did, when I got that error message. Turned out my complex dependency tree brought about an old version of com.google.collections, which broke the CQL driver. Removing this dependency and relying entirely on guava solved my problem.

    0 讨论(0)
  • 2020-12-29 22:19

    Go to your Apache Cassandra conf directory and enable the binary protocol

    Cassandra binary protocol The Java driver uses the binary protocol that was introduced in Cassandra 1.2. It only works with a version of Cassandra greater than or equal to 1.2. Furthermore, the binary protocol server is not started with the default configuration file in Cassandr a 1.2. You must edit the cassandra.yaml file for each node:

    start_native_transport: true
    

    Then restart the node.

    0 讨论(0)
  • 2020-12-29 22:21

    I was having the same issue testing a new cluster with one node.

    After removing this from the Cluster builder I was able to connect:

    .withLoadBalancingPolicy(new DCAwareRoundRobinPolicy("US_EAST"))
    

    It was able to connect.

    0 讨论(0)
  • 2020-12-29 22:23

    I was also having same problem. I have installed Cassandra in a separate Linux pc and tried to connect via Window pc. I was not allowed to create the connection.

    But when we edit cassandra.yaml, set my linux pc ip address to rpc_address and restart, it allows me to connect successfully,

    # The address or interface to bind the Thrift RPC service and native transport
    # server to.
    #
    # Set rpc_address OR rpc_interface, not both. Interfaces must correspond
    # to a single address, IP aliasing is not supported.
    #
    # Leaving rpc_address blank has the same effect as on listen_address
    # (i.e. it will be based on the configured hostname of the node).
    #
    # Note that unlike listen_address, you can specify 0.0.0.0, but you must also
    # set broadcast_rpc_address to a value other than 0.0.0.0.
    #rpc_address: localhost
    rpc_address: 192.168.0.10
    
    0 讨论(0)
提交回复
热议问题