问题标签 [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 投票
3 回答
12791 浏览

cassandra - 如何重置丢失的 Cassandra 管理员用户密码?

我对 Cassandra 安装文件和在cassandra.yaml. 我该怎么做才能重置丢失的管理员用户密码,同时保持现有数据库完好无损?

0 投票
4 回答
2978 浏览

authentication - Cassandra 2.0 集群的 PasswordAuthenticator 无法初始化默认用户:“某些节点尚未准备好”

如何设置这个?我有一个复制因子为 3 的三节点集群,在启动时出现以下错误:

没有创建默认用户,并且尝试使用例如 cqlsh 登录失败:

0 投票
1 回答
6606 浏览

cassandra - Cassandra 节点对 up/down 状态和复制有不同的看法。怎么修?

我有一个由三个节点组成的 Cassandra 2.0.1 集群和具有复制因子 3 的主键空间。由于集群中一个额外的第四个节点意外配置错误,我尝试首先使用不必要的“nodetool decommission”来修复它(在节点 db2 上)在做正确的“nodetool removenode”之前。

现在,运行停用的节点 db2 似乎看到另一个节点的状态为“Down”,即使其他人认为一切正常。此外,当我在所有节点上运行“nodetool ring”时,db1 给出“Replicas:2”,其中 db2 和 db3 在列表顶部有“Replicas:3”。

键空间包含我不想丢失的数据,并且集群无法完全关闭,因为一直在插入新数据。在不危及现有数据和新数据的情况下解决问题的好方法是什么?

下面混淆了 nodetool 状态输出。

0 投票
1 回答
236 浏览

cassandra - Cassandra:如何在启动 Cassandra 之前设置密码?

通过编辑 cassandra.yaml 启用密码身份验证对我来说很好。我可以bin/cqlsh -u cassandra -p cassandra用来登录。

我在 cassandra.yaml 中有以下内容:

我想做的是在启动 Cassandra 之前为用户“cassandra”设置密码。出于明显的安全原因,我不想使用默认密码启动 Cassandra。这可以做到吗?如何?

我是一个使用 Cassandra 2.0.2 的 Cassandra 新手。

0 投票
3 回答
7677 浏览

cassandra - Cassandra num_tokens - 这真的是 num_token_partitions 吗?

我是卡桑德拉的新手。我正在阅读 cassandra.yml 文件中虚拟节点的 num_tokens 参数。我认为我不太了解这是在做什么或如何分配令牌/分区。这里到底发生了什么?

如果我们真的在谈论令牌/节点的数量,则默认值 256 没有任何意义。num_tokens 真的是 num_token_partitions/node 吗?

让我们从 2 个节点 A 和 B 开始,添加第 3 个节点 C,然后尝试解释事情是如何工作的。首先,每个节点都配置了 256 个 num_tokens。现在,当 A 和 B 出现时

  1. A 和 B 加入集群时获得了多少令牌?A 和 B 得到什么分区范围,这是如何决定的?
  2. Cassandra 中存储了什么样的元数据才能知道 A 和 B 携带哪些分区范围。
  3. 当 C 现在加入时会发生什么?Cassandra 如何决定 C 获得哪些分区范围?应该在 C 上放置多少个分区?
  4. C加入时A和B的分区范围如何确定?

为了大家的利益,有没有好心的详细解释一下?

0 投票
1 回答
1300 浏览

cassandra - 如何使用 hive 在列族中设置 ttl

我正在为 Cassandra 使用 Datastax 并在 CFS 之上,我尝试使用 Hive.Cassandra 加载数据,在插入和更新时在列级别具有 TTL(生存时间)。我的问题是我们如何在加载时实现相同的 TTL使用 Hive 将数据放入 Column Family 中。有没有办法为 ColumnFamily 指定 TTL 或从 hive 加载时?

示例(来自 datastax 网站的参考):cqlsh:demodb> INSERT INTO users (user_name, password) VALUES ('cbrown', 'ch@ngem4a') USING TTL 86400;

cqlsh:demodb> UPDATE users USING TTL 432000 SET 'password' = 'ch@ngem4a' WHERE user_name = 'cbrown';

注意:要求是在一段时间后清除数据。Cassandra 可以选择使用 TTL 来执行此操作,但我正在尝试使用 Hive 加载数据。因此,寻找在列系列级别或通过加载时指定 TTL 的选项蜂巢

0 投票
1 回答
5031 浏览

cassandra - 插入具有区分大小写的列名的列族

我正在使用以下 Cassandra/CQL 版本:

[cqlsh 4.0.1 | 卡桑德拉 2.0.1 | CQL 规范 3.1.1 | 节俭协议 19.37.0]

我正在尝试将数据插入到具有区分大小写的列名的预先存在的 CF 中。尝试插入数据时遇到“未知标识符”错误。

以下是列族的描述方式:

插入语句导致错误:

知道我做错了什么吗?

0 投票
1 回答
7188 浏览

cassandra - 登录集群时,Datastax Java 驱动程序无法针对 Cassandra PasswordAuthenticator 进行身份验证

使用如下所示的小型测试 Java 程序,我可以登录到单个 Cassandra 2.0.1 节点并执行没有错误的查询:

正如预期的那样,提供错误的密码失败并出现“用户名和/或密码不正确”错误。

但是,当使用正确的凭据对属于三节点集群的节点尝试相同的程序时,我收到一条有点令人困惑的“缺少必需的密钥'用户名'”消息:

为什么会这样?

凭据是正确的,因为提供相同的凭据可以正常cqlsh工作:

测试程序代码:

0 投票
2 回答
1186 浏览

java - cassandra-stress 遇到“java.lang.OutOfMemoryError: Java heap space”错误

我正在尝试使用 cassandra-stress 工具在 cassandra 中插入记录。

但我一直遇到以下错误:

我尝试通过更改 /usr/bin/cassandra-stress 中的 java 调用来增加堆:

请注意,cassandra 本身没有显示任何错误。

我有一台运行 Ubuntu 12.04.3 LTS(GNU/Linux 3.2.0-55-generic x86_64)的 32 GB 四核机器。

0 投票
3 回答
10127 浏览

cassandra - DataStax Opscenter 代理未连接:“无法找到 cassandra.yaml 配置文件”

我在 Windows Server 2012 R2 Datacenter 机器上安装了 Datastax Community Edition v2.0.3。安装 vanilla 后,我无法使用 OpsCenter 连接到数据库,因为代理无法启动:页面顶部显示“已连接 1 个代理中的 0 个”。我可以使用 CQLSH 连接到数据库本身。v2.0.2 不会出现此问题。

我的datastax_opscenter_agent-stderr.log文件包含以下内容:

实际上目录中有一个cassandra.yaml文件C:\Program Files\DataStax Community\apache-cassandra\conf,它应该在哪里。上面的消息表明它查看了C:\\Program Files\\DataStax Community\\apache-cassandra\\bin\\conf\\cassandra.yaml,但是(注意 \bin)。

根据日志的建议,在 中设置conf_location选项会opscenter\conf\clusters\local.conf导致相同的错误。

通过这一切,Windows 防火墙已被关闭。

编辑

我一直在修修补补,现在我在日志中得到了同样的异常,除了它一直在寻找的路径cassanda.yaml已经从

'C:\Program Files\DataStax Community\apache-cassandra\bin\conf\cassandra.yaml'

'C:\Program Files\DataStax Community\utils\conf\cassandra.yaml'

我不知道我做了什么来改变这一点。

我试过复制cassandra.yaml到上面的目录。这消除了 中的异常datastax_opscenter_agent-stderr.log,但 OpsCenter 仍然显示“已连接 1 个代理中的 0 个”。但是,仪表板现在在图表中显示数据。我也可以向模式中添加一个键空间,但是在我创建它之后它不会显示出来。不过,它可以使用 访问CLQSH。显然,cassandra.yaml在两个不同的地方拥有也不理想。