无法使用 Cassandra Datastax Java 驱动程序连接到 Cassandra 节点之一

斯鲁吉斯庞德拉

Cassandra datastax 驱动程序无法连接到数据中心中的节点之一,但我仍然能够读取和写入数据库。数据中心在一个机架中包含两个节点。我将其中之一指定为种子节点。

Connected to cluster: Test Cluster
Datacenter: datacenter1; Host: /PVT IP1; Rack: rack1
Datacenter: datacenter1; Host: /PUBLIC IP2; Rack: rack1
2017-11-04 02:19:50 WARN  com.datastax.driver.core.HostConnectionPool:184 - Error creating connection to /PVT IP1:9042
com.datastax.driver.core.exceptions.TransportException: [/PVT IP1:9042] Cannot connect
    at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:165)
    at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:148)
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:500)
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:479)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420)
    at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:122)
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:220)
    at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
    at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:120)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:399)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
    at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
    at java.lang.Thread.run(Thread.java:745)
Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: /PVT IP1:9042
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:218)
    ... 7 more
2017-11-04 02:19:50 WARN  com.datastax.driver.core.Session:378 - Error creating pool to /PVT IP1:9042
com.datastax.driver.core.exceptions.ConnectionException: [/PVT IP1:9042] Pool was closed during initialization
    at com.datastax.driver.core.HostConnectionPool$2.onSuccess(HostConnectionPool.java:148)
    at com.datastax.driver.core.HostConnectionPool$2.onSuccess(HostConnectionPool.java:134)
    at com.google.common.util.concurrent.Futures$6.run(Futures.java:1773)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
    at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
    at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
    at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:613)
    at com.google.common.util.concurrent.CollectionFuture$CollectionFutureRunningState.handleAllCompleted(CollectionFuture.java:76)
    at com.google.common.util.concurrent.AggregateFuture$RunningState.processCompleted(AggregateFuture.java:255)
    at com.google.common.util.concurrent.AggregateFuture$RunningState.decrementCountAndMaybeComplete(AggregateFuture.java:242)
    at com.google.common.util.concurrent.AggregateFuture$RunningState.access$300(AggregateFuture.java:91)
    at com.google.common.util.concurrent.AggregateFuture$RunningState$1.run(AggregateFuture.java:146)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
    at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
    at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
    at com.google.common.util.concurrent.AbstractFuture.completeWithFuture(AbstractFuture.java:730)
    at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:666)
    at com.google.common.util.concurrent.Futures$AsyncCatchingFuture.doFallback(Futures.java:826)
    at com.google.common.util.concurrent.Futures$AsyncCatchingFuture.doFallback(Futures.java:813)
    at com.google.common.util.concurrent.Futures$AbstractCatchingFuture.run(Futures.java:789)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
    at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
    at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
    at com.google.common.util.concurrent.AbstractFuture.completeWithFuture(AbstractFuture.java:730)
    at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:666)
    at com.google.common.util.concurrent.Futures$AsyncCatchingFuture.doFallback(Futures.java:826)
    at com.google.common.util.concurrent.Futures$AsyncCatchingFuture.doFallback(Futures.java:813)
    at com.google.common.util.concurrent.Futures$AbstractCatchingFuture.run(Futures.java:789)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
    at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
    at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
    at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:634)
    at com.google.common.util.concurrent.Futures$AbstractChainingFuture.run(Futures.java:1405)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
    at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
    at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
    at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:634)
    at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:53)
    at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:165)
    at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:148)
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:500)
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:479)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420)
    at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:122)
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:220)
    at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
    at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:120)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:399)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
    at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
    at java.lang.Thread.run(Thread.java:745)

每个节点的 docker-compose.yaml 文件如下所示:

Yaml file Node 1:
version: "3"
services:

  cassandra:
    image: cassandra:3.11
    container_name: cassandra_node
    ports:
      - 7000:7000
      - 9042:9042
    volumes:
      - /home/******/docker/cassandra/cassandra-data:/var/lib/cassandra
    environment:
      CASSANDRA_BROADCAST_ADDRESS: PVT IP1
      CASSANDRA_SEEDS: PVT IP1

对于节点 2:

Yaml File Node 2
version: "3"
services:

  cassandra:
    image: cassandra:3.11
    container_name: cassandra_node
    ports:
      - 7000:7000
      - 9042:9042
    volumes:
      - /home/******/docker/cassandra/cassandra-data:/var/lib/cassandra
    environment:
      CASSANDRA_BROADCAST_ADDRESS: PVT IP2
      CASSANDRA_SEEDS: PVT IP1

有人可以帮我解决这里的问题。谢谢!!

赛博拉斯

我认为这里的问题在于传递给CASSANDRA_BROADCAST_ADDRESSand 的CASSANDRA_SEEDS值中有空格字符,因此 cassandra 驱动程序可能无法解析。

我一直在使用下面的 docker-compose.yml 来创建 cassandra 集群。请试一试。

版本:'3'

网络:
    cassandra-cluster:
        驱动程序:桥接

卷:
  数据卷-dc1-n1:
  数据卷-dc1-n2:
  数据卷-dc2-n1:
  数据卷-dc2-n2:

服务:
    ############################################### ########################################### 
    DC1 节点1 
    # ############################################### ######################################### 
    DC1_N1: 
        container_name: DC1_N1 
        image : cassandra:latest
        命令: bash -c 'if [ -z "$$(ls -A /var/lib/cassandra/)" ] ; 然后睡眠0; fi && /docker-entrypoint.sh cassandra -f'

        卷:
            -数据-体积- DC1-N1:在/ var / lib中/卡桑德拉

        环境:
            - CASSANDRA_CLUSTER_NAME = cassandra_cluster 
            - CASSANDRA_SEEDS = DC1_N1,DC1_N2,DC2_N1,DC2_N2 
            - CASSANDRA_ENDPOINT_SNITCH = GossipingPropertyFileSnitch 
            - CASSANDRA_DC = DC1 
            - CASSANDRA_RACK = RACK1 

        #露出用于卡桑德拉簇端口
        暴露: 
            - 7000 
            - 7001 
            - 7199 
            - 9042 
            - 9160

        端口: 
            - "9042:9042" 

        # Cassandra ulimt 推荐设置
        ulimits: 
            memlock: -1
            nproc:32768
        环境:
            nofile:100000 个

        网络:
            -cassandra-cluster

        重启:除非停止

    ################################## ############################################### ########## 
    DC1 节点 2 
    ################################### ############################################### ######## 
    DC1_N2: 
        container_name: DC1_N2 
        image: cassandra:latest 
        command: bash -c 'if [ -z "$$(ls -A /var/lib/cassandra/)" ] ; 然后睡眠0; fi && /docker-entrypoint.sh cassandra -f'

        卷:
            - data-volume-dc2-n2:/var/lib/cassandra

            - CASSANDRA_CLUSTER_NAME = cassandra_cluster
            - CASSANDRA_SEEDS = DC1_N1,DC1_N2,DC2_N1,DC2_N2 
            - CASSANDRA_ENDPOINT_SNITCH = GossipingPropertyFileSnitch 
            - CASSANDRA_DC = DC1 
            - CASSANDRA_RACK =的Rack2 

        #露出用于卡桑德拉集群端口
        暴露:
            - 7000 
            - 7001 
            - 7199 
            - 9042 
            - 9160 

        #卡桑德拉ulimt推荐设置
        ulimits:
            MEMLOCK: - 1 
            nproc:32768 
            nofile:100000 个

        网络:
            -cassandra-cluster

        重启:除非停止

    ############################################### ########################################### 
    DC2 节点 1 
    # ############################################### ######################################### 
    DC2_N1: 
        container_name: DC2_N1 
        image : cassandra:latest
        命令: bash -c 'if [ -z "$$(ls -A /var/lib/cassandra/)" ] ; 然后睡眠0; fi && /docker-entrypoint.sh cassandra -f'

        卷:
            - data-volume-dc2-n1:/var/lib/cassandra

        环境:
            - CASSANDRA_CLUSTER_NAME=cassandra_cluster  
            - CASSANDRA_SEEDS=DC1_N1,DC1_N2,DC2_N1,DC2_N2
            - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch 
            - CASSANDRA_DC=DC2
            - CASSANDRA_RACK = RACK1 

        #暴露于卡桑德拉集群端口
        暴露:
            - 7000 
            - 7001 
            - 7199 
            - 9042 
            - 9160 

        #卡桑德拉ulimt建议设置
        ulimits:
            MEMLOCK:-1 
            NPROC:32768 
            NOFILE:100000

        网:
            -卡桑德拉集群

        重启:除非-停止

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Datastax Cassandra Java驱动程序的Accessor是否使用分页?

Datastax Java Cassandra驱动程序:使用WHERE的多个AND语句?

如何使用DataStax Java驱动程序设置Cassandra客户端到节点的加密?

Cassandra:使用DataStax Java驱动程序选择一系列TimeUUID

使用Datastax Java驱动程序无法通过Cassandra的UDT密钥检索

无法使用 Datastax DevCenter 连接到 Cassandra

datastax cassandra java驱动程序PlainTextAuthProvider示例

带分页的Datastax Cassandra Java驱动程序RetryPolicy

如何使用Datastax Java驱动程序有效地使用批写入Cassandra?

尝试使用Java驱动程序连接到Cassandra时出现AuthenticationException

使用DataStax C#驱动程序处理Cassandra中的所有节点

如何使用带有Datastax Java驱动程序的CQL向Cassandra添加任意列?

Nodejs - Apache Cassandra(使用 Datastax 驱动程序)

如何使用datastax驱动程序创建Cassandra连接池

Cassandra Datastax驱动程序-连接池

Cassandra Java驱动程序连接错误

如何在Cassandra中使用Datastax Java驱动程序有效地使用准备好的语句?

无法使用DataStax C#驱动程序从Cassandra获取值

使用Cassandra的datastax Java驱动程序中的别名可链接便捷方法选择特定列以及avg和max

无法使用 Cassandra 的 C 驱动程序连接到密钥空间

DataStax Devcenter无法连接到远程cassandra数据库

Cassandra如何处理Datastax Java驱动程序中的阻塞执行语句

Datastax Cassandra Java驱动程序-对象映射器-自动创建表

Cassandra Datastax Java 驱动程序看不到配置中的环境变量

datastax cassandra java驱动程序问题与scala转换(播放2.3.x)

无法将结果集转换为Cassandra datastax驱动程序中的列表

Cassandra使用datastax cassandra读取操作错误

在使用Datastax Cassandra驱动程序时是否重新使用PreparedStatement?

使用datastax驱动程序检索有关Cassandra集群数据中心的信息