我在与3个节点的集群进行连接时遇到了问题。即最初至少需要2个节点与集群进行连接,如果所有节点都关闭,并且只有一个节点出现,那么我可以与集群进行连接
下面是我如何使用gossip snitch设置3个节点的连接集群的细节
node1 cassandra.yml
cluster_name: 'TestCluster'
num_tokens: 256
authenticator: PasswordAuthenticator
seeds: "1.1.1.1, 1.1.1.2, 1.1.1.3"
listen_address: 1.1.1.1
rpc_address: 1.1.1.1
endpoint_snitch: GossipingPropertyFileSnitch
authenticator: PasswordAuthenticator
authorizer: CassandraAuthorizer
network_authorizer: AllowAllNetworkAuthorizer
字符串
Node1 rack.properties
dc=datacenter1
rack=rack1
型
Node1 topology.properties
1.1.1.1=datacenter1:rack1
1.1.1.2=datacenter1:rack2
1.1.1.3=datacenter1:rack3
型
node2 cassandra.yml
cluster_name: 'TestCluster'
num_tokens: 256
authenticator: PasswordAuthenticator
seeds: "1.1.1.1, 1.1.1.2, 1.1.1.3"
listen_address: 1.1.1.2
rpc_address: 1.1.1.2
endpoint_snitch: GossipingPropertyFileSnitch
authenticator: PasswordAuthenticator
authorizer: CassandraAuthorizer
network_authorizer: AllowAllNetworkAuthorizer
型
Node2 rack.properties
dc=datacenter1
rack=rack2
型
Node2 topology.properties
1.1.1.1=datacenter1:rack1
1.1.1.2=datacenter1:rack2
1.1.1.3=datacenter1:rack3
型
node3 cassandra.yml
cluster_name: 'TestCluster'
num_tokens: 256
authenticator: PasswordAuthenticator
seeds: "1.1.1.1, 1.1.1.2, 1.1.1.3"
listen_address: 1.1.1.3
rpc_address: 1.1.1.3
endpoint_snitch: GossipingPropertyFileSnitch
authenticator: PasswordAuthenticator
authorizer: CassandraAuthorizer
network_authorizer: AllowAllNetworkAuthorizer
型
Node3 rack.properties
dc=datacenter1
rack=rack3
型
Node3 topology.properties
1.1.1.1=datacenter1:rack1
1.1.1.2=datacenter1:rack2
1.1.1.3=datacenter1:rack3
型
在node 1中,我连接到cqlsh,默认用户名为cassandra,密码为:cassandra
CREATE ROLE IF NOT EXISTS admin1 WITH SUPERUSER = true AND LOGIN = true AND PASSWORD = 'admin1password';
型
然后我删除默认用户“cassandra”现在从所有三个节点我能够通过新的admin 1连接到cqlsh
问题:
1.当所有三个节点都关闭时-->稍后当一个节点打开时-->无法连接到cqlsh
1.当所有三个节点都关闭以与群集建立初始连接或连接到cqlsh时,它需要至少2个节点启动并运行
有没有人能为这个问题提供解决方案?
Thanks in Advance
1条答案
按热度按时间h22fl7wq1#
如果你使用GossipingPropertyFileSnitch,我希望你已经编辑了每个节点上的cassandra-rackdc.properties文件,只是指出该节点属于哪个机架/ DC。它不会包含其他节点机架/ DC的详细信息-该snitch的目的是他们会互相八卦他们的拓扑结构。
您遇到的具体问题:
1.如果system_auth keyspace未更改为RF=3,则您创建的admin用户的详细信息可能位于已关闭的节点上,您需要所有3个节点来持有CL=ONE Admin auth的授权,以便能够访问数据的1个副本。
1.这一点还不清楚,但是在Local_Quorum / Quorum上发出的任何查询都希望看到3个节点中的2个节点启动。我怀疑这与第1点有关,并且您没有提到更改system_auth keyspace的RF。