问题标签 [cassandra-2.0]

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 投票
2 回答
1243 浏览

cassandra - 如何在cassandra中选择计数器值

在 CQL 中(或更重要的是,在 datastax java 驱动程序中)我如何查询计数器的值,例如“WHERE counter > 5”?

谢谢,

0 投票
1 回答
1998 浏览

java - Cassandra 在启动时生成“java.lang.OutOfMemoryError: Java heap space”错误

我将系统从 13.04 升级到 13.10,但我无法再启动 Cassandra,出现内存不足错误,因此即使我当时所做的只是启动服务器,堆也已满。

我进入并使用-Xmx1992m(默认值)将最大堆大小增加到-Xms2500m。

我想知道为什么需要做这样的事情?是不是在运行 Linux 内核 3.5.0 和迁移到内核 3.11.0 之间内存减少了一点,这会影响 Cassandra 吗?(即说我“丢失”了 200M,现在它正在分配 1992Mb 而不是以前的内核的 2192Mb,可能是这样吗??)

我在这里担心的是,每当我升级时,我都可能遇到这样的问题,除非我将最大堆大小强制为固定数字(而不是让脚本确定要动态使用的 Mb。)另外,我不能继续增加永远的极限。我的 RAM 是有限的......(显然。)

在启动时,Cassandra 显示以下内容(分为 3 行,以便在此处阅读):


更新:

啊!它仍在启动 OpenVMS,因为指向 /usr/lib/jvm/default-java 的 $JAVA_HOME 变量(它在 /etc/environment 中定义):

不知何故,它在那里被设置回 OpenVMS。尽管我更改了 /etc/alternatives/java 软链接,因此java -version在我的命令行中“工作正常”(返回我所期望的)Cassandra 启动脚本使用了该$JAVA_HOME变量!

所以我检查了可用虚拟机列表:

并运行以下两个命令让 Oracle 运行:

但是,这并没有改变我仍然需要在内存方面有一个很大的上限的事实。

0 投票
0 回答
913 浏览

cassandra - Cassandra 数据中心间通信中断

我有两个数据输入 DC1 和 DC2。两者都通过专用链接进行通信。昨天,我们的私人链接出现了 10 分钟的问题。从问题解决后,两个数据中心的节点就无法相互通信。当我在 DC1 中的节点上执行 nodetool 状态时,DC2 中的节点被声明为关闭。在 DC2 中尝试时,DC1 中的节点显示为 down 。

但在 cassandra 日志中,我们可以清楚地看到,数据中心之间的通信每 5 秒握手失败一次。在 TCP 级别,cassandra 生成的 fin_wait1 太多,这仍然是一个难题。由于这个原因,Closed_wait 顶部转换非常高。由于这种 TCP 侦听丢失的问题,我们从 2.0.1 移到了 2.0.3。在 2.0.1 中,它位于数据中心内部。但这里是在数据中心之间。如果它与 snitch 配置有关,我使用的是 GossipingPropertyFileSnitch。

这显然是在私有链接失败后开始发生的。对此有任何想法吗?

使用的 Cassandra 版本是 2.0.3

0 投票
2 回答
397 浏览

cassandra - 错误 - Apache Cassandra 2.0.5 和 Datastax OpsCenter 4.1

我在 Centos 6.5 上使用 cassandra 2.0.5 并且 OpsCenter 4 运行良好,直到我将 OpsCenter 更新到版本 4.1 。我访问 OpsCenter 页面,单击管理现有集群并提供我的节点的 IP 地址 (127.0.0.1),它给了我以下信息:“创建集群时出错:max() arg 是一个空序列”。

有什么线索吗?

0 投票
1 回答
7758 浏览

mongodb - 为什么 Apache Cassandra 的写入速度比 MongoDB、Redis 和 MySql 慢

我最近开始为客户尝试一些 noSQL 原型。他们有一个实时应用程序,可以进行大量插入,但读取次数较少(目前他们正在使用 MySql 并想尝试一些 noSQL 解决方案)

上周末,我尝试将 Cassandra 2.0、MongoDB 2.4.9 和 Redis 与普通的 Mysql 5.5 DB 进行比较。所有这些都在我的 Windows i3 核心 2.30 Ghz/8GB RAM 笔记本电脑上运行,所以没有高端花哨的机器。

表结构很简单,如下所示。虽然是 MySql DESC,但 Cassandra 具有相同的结构,在 MongoDb 中它存储为 JSON/BSON 但具有相同的结构和索引。它为所有三个数据库提供了两个索引(oneway_id 和 twoway_id)。

结构(对于所有四个分贝)

数据库/环境详细信息

  • MySql 5.6(64 位)与 mysql java 连接器 5.1.28
  • 带有 datastax 2.0 Java 驱动程序的 Apache Cassandra 2.0
  • 带有 mongo Java 驱动程序 2.12.0 的 MongoDB 2.4.6
  • 在 linux 机器上运行的 Redis 2.8.17
  • Oracle Java 1.6(64 位)
  • 微软视窗 7(64 位)
  • 英特尔 i3 核心 2.30 Ghz 处理器
  • 8GB 内存

创建了一个简单的 java 测试用例,这些是我得到的结果(虽然数字不一致,但延迟几乎相同):

100,000 条记录

  • MySql 1000,000 - 46 秒
  • 卡桑德拉 - 54 秒
  • MongoDb - 2 秒

500,000 条记录

  • MySql 1000,000 - 142 秒
  • 卡桑德拉 - 299 秒
  • MongoDb - 41 秒

1,000,000 条记录

  • MySql 1000,000 - 349 秒
  • 卡桑德拉 - 699 秒
  • MongoDb - 51 秒
  • Redis - 34 秒

我的问题是,为什么 Cassandra 需要这么长时间来插入这么小而简单的表格?

在 Cassandra 中,我尝试了内联循环 sql 插入和批量插入。有趣的是批量插入需要更多时间。我遵循的批量插入文档是:

http://www.datastax.com/dev/blog/client-side-improvements-in-cassandra-2-0

我不想使用asyncExecute,因为它没有给我确切的插入时间。

我使用的批量插入是这样的(这比普通插入需要更多时间)

我使用的内联循环插入是这样的

现在为什么 Cassandara 比 mysql 慢而且更重要 - 为什么 MongoDB 比 Cassandra 快得多?我真的希望我做错了什么?

有没有办法像 MongoDB 一样将 JSON/BSON 对象直接插入 Cassandra?我想这可能会使它变快?一些专家可以帮助我吗?如果没有答案,我会得出结论说 MongoDB 比 Cassandra 更好!

0 投票
2 回答
132 浏览

database - Cassandra 2.0 中的有序模型

我是 Cassandra 的新手,我正在尝试为时间序列数据制作模型。我目前的提议是这样的:

是感应到的variable_timestamp实际时间。valuenearest_10_minutes是时间戳,但四舍五入到最接近的 10 分钟。例如,如果 variable_timestamp 是:19/11/2013 13:13:19.562,则最近的_10_minutes 是19/11/2013 13:10:00.000

我可以摆脱集群键中的 variable_type 并将其放入二级索引,但我不确定这是否有助于我的情况。

问题是我不确定如何正确排序数据。如果我采取select * from myproject.variables(仅用于测试目的),我会得到类似(仅显示时间戳):

现在,我不太清楚我是否应该得到一些默认排序?如果我使用 a,select * from myproject.variables order by variable_timestamp asc那么我会收到一条错误消息,指出如果分区键是用 EQ 或 IN 过滤的,我只能使用 ORDER BY。而且 IN 只能与分区键的第二部分一起使用,而不能与第一部分一起使用。

总而言之,我有点困惑,我怎样才能以我可以选择和排序数据的方式对此进行建模?

- - - - - - - - - - - - - - - 回答: - - - - - - - - - ------------------

因此,在某种程度上,jorgebg 和 BryceAtNetwork23 的所有当前答案以及 Mikhail Stepura 的评论都向我展示了我认为正确的道路。因为我想尽可能地保持分区随机,但我可以预测它,所以我可以排序查询并使用 IN 关键字(所以我可以在查询中放置多个分区键),我只是决定做一个自定义分区键。我选择的方案是连接 variable_type:timestamp_rounded_by_the_hour。我知道,这会引入一些存储逻辑的客户端泄漏,但是在代码中查询时重新创建分区键集相当容易。

我选择的答案是贡献最大的答案。

0 投票
1 回答
2784 浏览

cql3 - 检查 Cassandra 中收集列上的当前 TTL

假设我有一个具有以下架构的列族:

然后我用“USING TTL 60000”在这个CF中插入一行。当我想验证这些列是否仍然设置了 TTL 时,我收到错误:“无法在集合上使用选择函数 ttl”。

我的问题是:如何在定义为 collection 的列的元素上获取 TTL?

干杯!

0 投票
2 回答
1697 浏览

cassandra - 尝试使用 cassandra 为 system_auth 更改密钥空间复制因子时出错

我正在尝试增加我在 cassandra 中的复制因子,因为出于安全相关原因,这是必要的,根据:

http://www.datastax.com/docs/datastax_enterprise3.0/security/security_keyspace_replication#security-keyspace-replication

当我执行命令时:

我得到错误:

有人知道这是为什么吗?我对此感到困惑</p>

0 投票
2 回答
3725 浏览

cassandra - 密钥空间 system_auth 不存在?

我想做以下命令:

system_auth 不显示为密钥空间是否正常?


基本上会发生以下错误:


另外,我什至如何查看存在的键空间?甚至可以在 cqlsh 中查看它们吗?

0 投票
1 回答
106 浏览

security - 您如何登录、检查您的用户帐户并作为 Cassandra 中的特定用户执行查询?

一旦 Cassandra 设置了用户帐户,您如何以其中之一的身份登录?或者,我如何以特定用户身份执行查询?


另外,您如何检查您登录的用户帐户是什么?