多节点 cassandra 集群 - load_balancing_policy
Posted
技术标签:
【中文标题】多节点 cassandra 集群 - load_balancing_policy【英文标题】:multi node cassandra cluster - load_balancing_policy 【发布时间】:2020-04-12 17:33:39 【问题描述】:您好,从我的 python 连接器连接我的 cassandra 时遇到一些问题
Connotor.py 包含以下代码
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
from cassandra import ReadTimeout
import os
class CassandraConnection():
def getConnection():
auth_provider = PlainTextAuthProvider(username ='admin', password='Dog2019')
cluster=Cluster(['a5ad8e558c23e9a524-1196365.us-west-2.elb.amazonaws.com'], auth_provider=auth_provider)
session = cluster.connect()
session.set_keyspace('tonnage')
cluster.connect()
return session
在运行我的 python 代码时出现此错误
警告:
cassandra.cluster:Cluster.init 使用 contact_points 调用 指定,但没有 load_balancing_policy。在下一个主要版本中, 这将引发错误;请指定负载平衡策略。 (联系点= ['a5ad8e558c23e9a524-1196365.us-west-2.elb.amazonaws.com'],lbp = 无)
警告:
cassandra.pool:尝试重新连接到 100.100.0.3 时出错, 在 4.0 秒内安排重试:[Errno None] 尝试连接到 [('100.100.0.3',9042)]。最后一个错误:超时
警告:
cassandra.pool:尝试重新连接到 100.100.0.2 时出错, 计划在 128.0 秒内重试:[Errno None] 尝试连接到 [('100.100.0.2',9042)]。最后一个错误:超时
警告:
cassandra.pool:尝试重新连接到 100.100.0.2 时出错, 在 4.0 秒内安排重试:[Errno None] 尝试连接到 [('100.100.0.2',9042)]。最后一个错误:超时
INFO:cassandra.policies:使用数据中心“datacenter1”进行 DCAwareRoundRobinPolicy(通过主机“34.217.153.0”);如果不正确,请给构造函数指定一个local_dc,或者将接触点限制在本地集群节点 INFO:cassandra.cluster:发现新的 Cassandra 主机 INFO:cassandra.cluster:发现新的 Cassandra 主机 INFO:cassandra.cluster:Cassandra 主机 52.26.34.69 已移除
【问题讨论】:
【参考方案1】:此错误的最可能原因如下(我不能 100% 确定,因为我们需要有关您的设置的更多信息) - 您将负载平衡器作为联系点,此名称已解析为多个 IP属于不同 Cassandra 数据中心的 Cassandra 节点的地址。通常这不是推荐的设置 - 您需要改为指向节点。您仍然可以使用不同数据中心中节点的 IP 地址,但在这种情况下,您需要将 local_dc
参数传递给 Cluster
构造函数(如上一条消息中所述)。
在消息中看到的另一个问题是,一些节点正在宣布私有 AWS 地址,而不是使用公共 IP 地址进行广播(如 described here)。
【讨论】:
我已经使用 BITNAMI CASSANDRA STACK HELM CHARTS [Cassandra] (bitnami.com/stack/cassandra/containers) 配置了 cassandra 集群以上是关于多节点 cassandra 集群 - load_balancing_policy的主要内容,如果未能解决你的问题,请参考以下文章
Apache Cassandra随笔之多节点跨数据中心集群配置以及日常操作
多节点 cassandra 集群 - load_balancing_policy
在Cassandra 3.0多节点集群中回收磁盘空间的最佳实践