错误会话:创建池到 /127.0.0.1:9042 时出错
ERROR Session: Error creating pool to /127.0.0.1:9042
当我遇到这个错误时,我正在尝试在 cassandra 中插入值:
15/08/14 10:21:54 INFO Cluster: New Cassandra host /a.b.c.d:9042 added
15/08/14 10:21:54 INFO Cluster: New Cassandra host /127.0.0.1:9042 added
INFO CassandraConnector: Connected to Cassandra cluster: Test Cluster
15/08/14 10:21:54 ERROR Session: Error creating pool to /127.0.0.1:9042
com.datastax.driver.core.TransportException: [/127.0.0.1:9042] Cannot connect
at com.datastax.driver.core.Connection.<init>(Connection.java:109)
at com.datastax.driver.core.PooledConnection.<init>(PooledConnection.java:32)
at com.datastax.driver.core.Connection$Factory.open(Connection.java:586)
at com.datastax.driver.core.SingleConnectionPool.<init>(SingleConnectionPool.java:76)
at com.datastax.driver.core.HostConnectionPool.newInstance(HostConnectionPool.java:35)
at com.datastax.driver.core.SessionManager.replacePool(SessionManager.java:271)
at com.datastax.driver.core.SessionManager.access0(SessionManager.java:40)
at com.datastax.driver.core.SessionManager.call(SessionManager.java:308)
at com.datastax.driver.core.SessionManager.call(SessionManager.java:300)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.ConnectException: Connection refused: /127.0.0.1:9042
我的复制因子是1。Cass集群中有5个节点(它们都启动了)。 rpc_address: 0.0.0.0, broadcast_rpc_address: 127.0.0.1
我认为对于 5 个节点中的每一个,我应该从上方看到其中的 5 个 "INFO Cluster: New Cassandra host.." 行。 但是我看到的是 127.0.0.1,我不确定为什么。
我还注意到在 cassandra.yaml 文件中,所有 5 个节点都列在种子下。 (我知道不建议这样做,但我没有设置这个集群)
seed_provider:
class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
seeds: "ip1, ip2, ip3, ip4, ip5"
其中 ipx 是节点 x 的 ipaddr。
而在cassandra-topology.properties下,它只是说了以下内容,并没有提到5个节点中的任何一个。
# default for unknown nodes
default=DC1:r1
有人可以解释为什么我看到错误会话:创建池到 /127.0.0.1:9042 时出错。
Cassandra 有点新..在此先感谢!
我认为问题出在您的 rpc_broadcast_address 设置为 127.0.0.1。您这样做有什么特别的原因吗?
java 驱动程序使用 system.peers table 查找用于连接主机的 IP 地址。如果设置了 rpc_broadcast_address,这将出现在 system.peers 中,驱动程序将尝试使用它。如果未设置 rpc_broadcast_address,将使用 rpc_address。无论哪种情况,您都希望将其中一个地址设置为您的客户可以访问的地址。如果您设置 rpc_address,您将要删除 broadcast_rpc_address.
当我遇到这个错误时,我正在尝试在 cassandra 中插入值:
15/08/14 10:21:54 INFO Cluster: New Cassandra host /a.b.c.d:9042 added
15/08/14 10:21:54 INFO Cluster: New Cassandra host /127.0.0.1:9042 added
INFO CassandraConnector: Connected to Cassandra cluster: Test Cluster
15/08/14 10:21:54 ERROR Session: Error creating pool to /127.0.0.1:9042
com.datastax.driver.core.TransportException: [/127.0.0.1:9042] Cannot connect
at com.datastax.driver.core.Connection.<init>(Connection.java:109)
at com.datastax.driver.core.PooledConnection.<init>(PooledConnection.java:32)
at com.datastax.driver.core.Connection$Factory.open(Connection.java:586)
at com.datastax.driver.core.SingleConnectionPool.<init>(SingleConnectionPool.java:76)
at com.datastax.driver.core.HostConnectionPool.newInstance(HostConnectionPool.java:35)
at com.datastax.driver.core.SessionManager.replacePool(SessionManager.java:271)
at com.datastax.driver.core.SessionManager.access0(SessionManager.java:40)
at com.datastax.driver.core.SessionManager.call(SessionManager.java:308)
at com.datastax.driver.core.SessionManager.call(SessionManager.java:300)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.ConnectException: Connection refused: /127.0.0.1:9042
我的复制因子是1。Cass集群中有5个节点(它们都启动了)。 rpc_address: 0.0.0.0, broadcast_rpc_address: 127.0.0.1
我认为对于 5 个节点中的每一个,我应该从上方看到其中的 5 个 "INFO Cluster: New Cassandra host.." 行。 但是我看到的是 127.0.0.1,我不确定为什么。
我还注意到在 cassandra.yaml 文件中,所有 5 个节点都列在种子下。 (我知道不建议这样做,但我没有设置这个集群)
seed_provider:
class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
seeds: "ip1, ip2, ip3, ip4, ip5"
其中 ipx 是节点 x 的 ipaddr。
而在cassandra-topology.properties下,它只是说了以下内容,并没有提到5个节点中的任何一个。
# default for unknown nodes
default=DC1:r1
有人可以解释为什么我看到错误会话:创建池到 /127.0.0.1:9042 时出错。
Cassandra 有点新..在此先感谢!
我认为问题出在您的 rpc_broadcast_address 设置为 127.0.0.1。您这样做有什么特别的原因吗?
java 驱动程序使用 system.peers table 查找用于连接主机的 IP 地址。如果设置了 rpc_broadcast_address,这将出现在 system.peers 中,驱动程序将尝试使用它。如果未设置 rpc_broadcast_address,将使用 rpc_address。无论哪种情况,您都希望将其中一个地址设置为您的客户可以访问的地址。如果您设置 rpc_address,您将要删除 broadcast_rpc_address.