- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 2 节点 Cassandra 集群上运行 KairosDB,RF = 2,写入 CL = 1,读取 CL = 1。如果 2 个节点处于事件状态,客户端会将一半数据发送到节点 1(例如从 METRIC_1 到 METRIC_5000 的指标)另一半数据发送到节点 2(例如,指标从 METRIC_5001 到 METRIC_10000)。理想情况下,每个节点始终拥有所有数据的副本。但如果一个节点死亡,客户端会将所有数据发送到存活节点。
客户端开始向集群发送数据。 30 分钟后,我将节点 2 关闭了 10 分钟。在这10分钟内,客户端将所有数据正确发送到节点1。之后,我重新启动节点2,客户端继续正常向2个节点发送数据。一小时后我停止了客户端。
我想检查节点 2 挂掉时发送到节点 1 的数据是否已自动复制到节点 2。为此,我关闭了节点 1,并在节点 2 死亡时从节点 2 查询数据,但没有返回任何内容。这让我以为数据没有从节点1复制到节点2。我发了一个问题Doesn't Cassandra perform “late” replication when a node down and up again? 。看起来数据是自动复制的,但是太慢了。
我期望两台服务器中的数据是相同的(出于冗余目的)。这意味着当节点 2 失效时发送到系统的数据必须在节点 2 可用后自动从节点 1 复制到节点 2(因为 RF = 2)。
我有几个问题:
1) 复制真的很慢吗?还是我配置有问题?
2)如果客户端向每个节点发送一半数据(如本问题所示),我认为可能会丢失数据(例如,节点 1 从客户端接收数据,而节点 1 正在将数据复制到节点 2 时,它突然宕机)。我说得对吗?
3) 如果我在 2) 中是正确的,我将这样做:客户端将所有数据发送到两个节点。这可以解决 2) 问题,并且如果一个节点已死亡且稍后可用,还可以利用复制的优势。但我想知道,这会导致数据重复,因为两个节点都接收相同的数据。这里有什么问题吗?
谢谢!
最佳答案
您可以检查 cassandra.yaml 配置文件中hinted_handoff_enabled 的值吗?
对于您的问题:是的,在某些情况下您可能会丢失数据,直到完全实现复制为止,Cassandra 并不完全进行后期复制 - 有三种机制。
据我所知,如果您运行的版本大于 0.8,提示的切换应该在节点重新启动后复制数据,而无需修复,除非数据太旧(10 分钟内不应该出现这种情况)。我不知道为什么这些切换在重新启动时没有发送到您的副本节点,值得进行一些调查。
否则,当您重新启动节点时,您可以强制 Cassandra 通过运行修复(例如通过运行 nodetool Repair)来确保数据一致。
根据您的描述,我感觉您在协调器节点和获取数据的节点之间感到困惑(即使这两个节点保存数据,区别也很重要)。
顺便说一句,您所描述的节点 1 和节点 2 之间的指标分片的客户端行为是什么? KairosDB 和 Cassandra 都不是这样工作的,是您自己的客户端将指标发送到不同的 KairosDB 实例吗?
Cassandra 分区不是根据指标名称进行的,而是根据行键进行的(确切地说是分区键,但与 kairosDB 相同)。因此,每个唯一系列的每 3 周数据将根据哈希码关联一个 token ,该 token 将用于集群上的分片/复制。KairosDB 能够与多个节点通信,并在作为协调节点的节点之间进行轮询。
我希望这会有所帮助。
关于cassandra - 2 节点 Cassandra 集群中的故障转移和复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31790072/
我们有 2 个 cassandra 集群,第一个有旧数据,第二个有新数据。 现在我们想要将旧数据从第一个集群移动或复制到第二个集群。什么是最好的方法来做到这一点以及如何做到这一点? 我们正在使用 DS
我正在考虑安装 OpsCenter 来监控我们在 RackSpace VM 上运行的 24 节点 Cassandra 集群。过去我听说 OpsCenter 减慢了集群速度。我有点担心 OpsCente
假设我有一个复制因子(RF)= 2 的 2 节点集群。 我使用一致性 2 触发插入。当客户端等待响应时,Cassandra 开始写入这 2 个节点。中间一个节点失败,无法完成写入,而另一节点上的写入成
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足 Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以
我在 Cassandra 中有一个表,其中我用 1000 多个条目填充了一些行(每行有 10000 多列)。行中的条目更新非常频繁,基本上只是一个字段(它是一个整数)被更新为不同的值。列的所有其他值保
当Cassandra端有“掉落的突变”时,它是否向调用客户端返回相应的失败?或者即使在服务器端丢弃相应的突变并导致数据丢失,它总是成功响应调用事务的调用客户端? 在一个特定实例中,当我们的 TPS 约
我有一个 Multi-Tenancy 应用程序,其中 tenantId 将成为每个查询的一部分,因此我将其放入所有表的分区键中。 例子: CREATE TABLE users { tenantId t
根据 Datastax 文档,在 Cassandra 中先读后写是一种反模式。 每当我们在 CQLSH 中使用 UPDATE 或使用 Datastax 驱动程序来设置几列(带有 IF 和集合更新)时,
是否有命令或任何方式可以知道 Cassandra 的哪些节点上存储了哪些数据? 我对 Cassandra 很陌生,在谷歌上搜索这个问题并没有多少运气。 谢谢! 最佳答案 您可以使用 nodetool
我们有一个包含 1500 万条记录的表,而我们的表是一个 10 节点的 cassandra 集群。我们有一列有接近 20 个可重复值。是否建议在此列上建立二级索引? 最佳答案 假设在该列上完全均匀分布
Cassandra 发布了它的 technical limitations但没有提到允许的最大列数。是否有最大列数?我需要存储 400 多个字段。这在 Cassandra 中可能吗? 最佳答案 每行的
我想知道当表中有多个非 PK 列时会发生什么。我读过这个例子: http://johnsanda.blogspot.co.uk/2012/10/why-i-am-ready-to-move-to-cq
我有两个关于 Cassandra 查询结果的问题。 当我在 Cassandra 中对表进行“完全”选择(即 select * from table )时,是否保证结果将按分区标记的递增顺序返回? 例如
我无法为 Cassandra 设置 Hector。我已经浏览了 documentation和 Cassandra wiki .这些文档的问题在于,那里的很多信息都已经过时或过时(或者我缺乏知识)。无论
我正在使用 DataStax Enterprise 中 cassandra 中提供的压力测试。如果有人知道的话,我也想要一些关于它和 cassandra 的信息。 - 首先,压力测试使用哪些节点?我的
当我在 CQL 中创建表时,列的顺序是否必须精确 不是 在主键和 中不是 聚类列: CREATE TABLE user ( a ascii, b ascii, c ascii,
我有一张如下表: CREATE TABLE tab( categoryid text, id text, name text, author text, des
我正在尝试学习 Cassandra,但对术语感到困惑。 很多情况下它表示该行存储键/值对。 但是,当我定义一个表时,它更像是声明一个 SQL 表,即;您创建一个表并指定列名和数据类型。 谁能澄清一下?
如何对 cassandra 数据实现审计? 我正在寻找一个开源选项。 cassandra 是否有任何有助于审计的功能? 我可以使用触发器将记录记录到表中吗?我关注了 Triggers示例并且能够将记录
我遇到了一个问题“me.prettyprint.hector.api.exceptions.HUnavailableException:: 可能没有足够的副本来处理一致性级别。”当我有 RF=1 时,
我是一名优秀的程序员,十分优秀!