问题标签 [cassandra-2.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
819 浏览

java - Cassandra GC 需要 30 秒并挂起节点

环境

我有以下环境:

  • 卡桑德拉 2.1.0
  • 一个 DC 5 个节点,第二个 DC 4 个节点
  • 每秒 2500 次写入
  • 最少读取(通常没有,有时很少)

问题

一个节点运行时间长后,GC开始耗时越来越长,直到nodetool报告这个节点宕机。

我可视化 gc.log 并有以下屏幕截图: 在此处输入图像描述

JVM 设置

评论后,工作 Cassandra 的完整命令行是:

问题

我应该检查什么以找出问题所在?此外,我最近

com.google.common.util.concurrent.UncheckedExecutionException:java.lang.RuntimeException:org.apache.cassandra.exceptions.ReadTimeoutException:操作超时 - 仅收到 2 个响应

0 投票
0 回答
1338 浏览

cassandra - Cassandra 永久 ReadTimeoutException

环境

我有以下环境:

  • 卡桑德拉 2.1.0
  • 一个 DC 5 个节点,第二个 DC 4 个节点
  • 每秒 2500 次写入
  • 最少读取(通常没有,有时很少)

问题

运行几周后,我无法从集群中读取任何数据,因为我ReadTimeoutException喜欢以下内容:

准确地说,这不仅是我的集群中的问题,这里描述了第二个问题:Cassandra GC 需要 30 秒并挂起节点,我将尝试按照 leshkin 的建议使用CASSANDRA-6541中的修复程序

问题

我知道我可能没有提供足够的信息,但我不知道我应该寻找什么。我知道我可以查询 ONE 而不是 QUORUM,但只有 QUORUM 选项才能为我提供可靠的数据。

0 投票
2 回答
688 浏览

cassandra - 尝试通过单元在 Cassandra 中创建列族时出现 InvalidQueryException

我有一个 3 节点 cassandra 集群,通过我在 Java 中的单元测试,我首先创建一个键空间,然后在该键空间内创建一个列族。有时单元测试通过但随机我不断收到以下错误。我正在使用最新的 datastax 2.1.4 java 驱动程序和 2.1.0 中的 cassandra 版本。

在 cassandra 的 system.log 文件中,我看到以下异常:

另外,我通过 devcenter 验证,没有创建密钥空间。

0 投票
1 回答
1315 浏览

cassandra - 在 Cassandra 2.1.0 集群中创建键空间时由对等异常重置连接

我有一个 3 节点 cassandra 2.1.0 集群,我正在尝试使用 datastax 2.1.4 java 驱动程序通过 Java 单元测试创​​建一个键空间。但是当我尝试创建密钥空间时,我在 Cassandra system.log 文件中随机看到以下错误:

任何人都知道这里可能发生了什么?

0 投票
1 回答
286 浏览

create-table - 'create table' event ... with Apache Cassandra

I am trying to run a Cassandra server. For that i just followed the tutorial on that page (http://www.opencredo.com/2014/10/23/spring-data-cassandra-overview/).

I am stuck on the step: Setting up Cassandra

When i try to create a table as described in tutorial i got an ErrorMessage code=2000.

After intensive research I still don't know what the problem here is, does anyone have a clue what a problem could be here?

My version is:

0 投票
2 回答
14132 浏览

cassandra - 最大限度。宽行的大小?

理论上,Cassandra 允许在一个宽行中最多包含 20 亿列。

我听说实际上高达 50.000 cols/50 MB 就可以了;50.000-100.000 cols/100 MB 是可以的,但需要一些调整;并且每行不应该超过 100.000/100 MB 列。原因是这会给堆带来压力。

这有什么道理吗?

0 投票
1 回答
158 浏览

cassandra - Cassandra 集群密钥使用

我正在努力解决这个问题,但坦率地说,我的大脑无法理解——至少看起来是这样。

我有一个专栏家族,为相当多的演员工作。它是一个中央作业管理和调度表,必须在整个集群中分布和可用,甚至可能在不久的将来的某一天穿越数据中心的障碍。

每个作业执行器参与者系统,即实际执行作业的系统,都安装在一个 Cassandra 节点旁边 - 即在同一个节点上。实际上,当然有 s 主演员拉动工作并将它们分配给演员代理,但这与我的问题无关。

还有一些参与者系统可以在中央作业表中创建作业以供其他参与者甚至参与者系统执行,但通常这些作业是批量加载或通过 Web 界面手动加载的。

要执行作业的参与者总是只查询它的本地 cassandra 节点。如果完成,它将更新作业表以指示它已完成。在正常情况下,此写入也应该只更新具有他的本地 Cassandra 节点具有权威性的作业的记录。

现在,有时可能会发生给定主机上的参与者系统无关的情况。在这种情况下,它确实也应该从其他节点获得作业,但当然它仍然只会与它的本地 Cassandra 节点对话。我知道这行得通,它并没有打扰我。

让我彻夜难眠的是:

我将如何创建一个复合键来实现 Cassandra 节点的本地权威,以获取其本地参与者系统的作业条目,从而实现它的作业执行参与者,而无需将作业表拆分为多个列族等?

换句话说:我如何创建一个复合键,以确保 a)作业在我的集群中均匀分布,b)作业表上的本地查询仅返回此 Cassandra 节点对其具有权威性的作业,以及 c)我的分布式代理系统仍然有可能从其他节点获取作业,以防它没有自己的作业可以执行???

关于上面 c) 的最后一句话。在没有本地工作的情况下,我不想做 2 次查询,但仍然只有 on!

对此有任何提示吗?

到目前为止,这是作业表的一般结构:

仍在设置所有内容的过程中,因此到目前为止没有定义查询。但是演员会从中拉出工作并设置状态等

0 投票
1 回答
99 浏览

datastax - cassandra 客户端收到重复的事件

我正在使用 cassandra 2.1.2 和 datastax cassandra-driver-core-2.1.2。这是一个奇怪的问题:当创建键空间(或创建、删除表)时,我的一些客户收到重复的事件,大约 200 多次。我的集群和我的客户在不同的地方(不在一个局域网中)。这会导致很多问题,一旦客户端收到这样的事件,它应该刷新模式,并从 system.keyspaces 等中获取所有模式信息。最后,它还会刷新NodeListAndTokenMap。所有这些操作都可能导致一些数据传输,一秒钟内 200 多个事件是可怕的。所以任何人都知道为什么以及如何预防?

感谢您阅读本文。

0 投票
1 回答
1028 浏览

cassandra - 仅当属性未更改时,如何有条件地将数据保存在 cassandra 中

我们有具有很多属性的文章数据模型。这是我们的表格模型:

其中 gtin 唯一标识文章,我们将组织的所有文章保存在一行中。只有在某些情况发生变化时,我们才会更新每篇文章。这很重要,因为如果文章发生更改,我们会更新last_updated字段,并且外部设备知道要同步哪些文章,因为它们在上次同步时具有信息。

为此,我们又添加了一张表格:

所以我们可以很容易地返回在某个时间点之后更新的所有文章。必须从每个 gtin 的重复项中清除该表,因为我们每天导入文章并从移动设备完成同步,因此我们希望保持数据集较小(理论上我们可以将所有内容保存在该表中,并用最新信息覆盖,但这会创建大型数据集在同步之间,所以我们开始从该表中删除,并且要删除我们需要last_updated从第一个表中知道)

我们现在面临的问题是:

  1. 为了检查文章字段是否更新,我们需要在写入之前进行读取(我们部分解决了这个问题,content_hash字段是所有字段的哈希值,因此我们读取传入文章的哈希值并将其与数据库中的值进行比较)
  2. 我们正在第二个表中删除和插入,因为我们需要唯一的gtins(只需要发送到设备的最新更改,而不是重复的文章),这会产生大量的墓碑
  3. 我们具有通过许多不同的字段组合添加到搜索的功能

问题:

  1. cassandra 是这种数据的好选择,还是我们应该将其移动到其他存储(或者甚至有elasticsearchcassandra结合在一起,我们可以在一段时间后索引更改,而 cassandra 只能保存主数据gtin)?
  2. 是否可以为我们的用例更好地建模数据以避免在第二个表中写入或删除之前读取或删除?

更新 只是为了澄清用例:其他设备正在与分页同步(发送last_sync_dateskipcount)所以我们需要包含所有文章信息的表格,按last_updated无重复排序和可搜索last_updated

0 投票
1 回答
929 浏览

cassandra - 宽行的 CQL - 如何获取最新的集合?

我将如何编写 CQL 以从每一行获取最新的数据集?

我正在研究从 MSSQL 到 Cassandra 的过渡,并开始掌握这些概念。大量的研究有很大的帮助,但我还没有找到答案(我知道一定有办法):

等待 1 分钟:

等待 3 分钟:

等5分钟:

我将如何编写 CQL 以从每一行获取最新的数据集?

SELECT ID, Title FROM WideRow - 给我 5 行,因为它为我旋转数据。

本质上,我希望 (SELECT ID, Title FROM WideRow WHERE .....) 的结果是:

另外,有没有办法计算宽行中的数据集数量?

本质上相当于 TSQL:SELECT ID, Count(*) FROM Table GROUP BY ID

谢谢

此外,任何参考以了解有关这些类型的查询的更多信息也将不胜感激。