问题标签 [cassandra-3.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.
cassandra - 我应该为 Cassandra 提交日志和数据使用不同的 HDD 吗?
我开始学习 Apache Cassandra。在conf/cassandra.yaml
我注意到commitlog
设置的评论如下:
commit log. when running on magnetic HDD, this should be a
separate spindle than the data directories.
If not set, the default directory is $CASSANDRA_HOME/data/commitlog.
这是否意味着我应该将它们存储commitlog
在不同的 HDD 中data
?如果是,这背后的原因是什么?如果我不遵守会发生什么。
谢谢。
cassandra - 没有找到合适的 python 解释器。- 卡桑德拉
我是 Cassandra 的新手。我在 RHEL 6.5 中安装了 Cassandra,并安装了 Cassandra 3.5。启动 cqlsh 时,它给了我错误没有找到合适的 python 解释器。
可能是什么原因,我应该尝试较低的 Cassandra 版本吗?有人遇到过同样的问题吗?
java - How to connect to cassandra java client with more than one node without mentioning the node details in java code using jdbc or datastax drivers
I'm new to Cassandra I want to connect to Cassandra through Java client as Cassandra api.I can connect to Cassandra with my java code by using datastax as weel as jdbc drivers by giving the node details in my java code. Now I want to connect to Cassandra cluster where I have 4 nodes in cluster,I want to connect to the Cassandra cluster nodes with out giving the node details in code and need to get connection when 1 node is down in cluster it should get connect to the next node in the cluster,so where to mention my node details in my code when Im using datastax drivers. Can any one help me to do this..It will helps me alot Thanks in advance
cassandra - 停用 Cassandra 节点
我刚刚停用了具有 3 个节点(全部运行 Cassandra 3.3)的 Cassandra 集群中的一个节点。其余节点之一不断打印:
在日志中停留半天左右,每秒一次。知道为什么吗?这意味着什么?
谢谢
编辑:
我注意到两个节点在过去 48 小时内都在日志中打印此消息!
java - Cassandra 驱动程序(datastax)使用 TokenAwarePolicy 进行负载平衡
我的问题是这个主题的后续:Cassandra load balance with TokenAwarePolicy and shuffleReplicas
我遇到了一些我不理解的关于 TokenAwarePolicy 的问题。
集群配置:
- 3个节点
- 复制因子 = 3
- 负载均衡策略:
new TokenAwarePolicy(new RoundRobinPolicy(), false)
- 一致性级别(读/写):一
洗牌副本故意设置为 false。但问题是我在我的应用程序中读取数据时遇到了一致性问题。例如 :
- 插入 10 个实体
- 使用 DB 完成一些其他操作...(插入其他实体)
- 选择先前创建的实体:所有字段都在“SELECT”子句中给出,而不是“SELECT *”。主键存在于“WHERE”子句中。
结果:有时会获得正确数量的实体(10),但有时会减少(从 0 到 9)。
注意:
- 我只使用 BoundStatements。
- 我没有使用 datastax 的异步方法。
- 我已经检查了“失败”查询中的路由键不为空,它不是。
我不得不承认我的目标是负载很重的数据库(30 个线程一起运行上述示例的 X 倍),但我仍然不明白为什么驱动程序没有查询正确的节点,给了我陈旧的数据。
感谢您的回答。
cassandra - Cassandra:忽略时间戳值的时区
我编写了一个程序,它读取包含日期的文件(以 yyyy/MM/dd 格式)并使用 Datastax Java 驱动程序读取日期并将其添加到 cassandra 表中。因此,例如,如果我的记录包含日期值“2010/06/01”,则该日期值将转换为日期对象(使用 SimpleDateFormat 类)。
但是,当我查看数据库中的数据(包含日期)时,我看到日期(在 cassandra 表中是时间戳类型)显示如下:
这里的问题是我不希望时间戳具有“+0100”(表示这是英国夏令时),而是希望将日期存储为“2010-06-01 00:00: 00+0000”。
我已经对我的程序执行了以下操作,以尝试通过执行以下操作“忽略”时区:
...现在,当我向程序添加调试语句时,我可以看到日期在我的日志文件中显示“2010-06-01 00:00:00+0000”(这对我来说是正确的)。但是,当我看到存储在 Cassandra 中的日期时,我仍然看到日期显示为“2010-06-01 00:00:00+0100”而不是“2010-06-01 00:00:00+0000”。
在 cassandra 方面是否有任何我必须更改或更新以忽略时区的内容(即不在日期上放置 +0100 并放置 +0000),以便时间戳显示为“2010-06-01 00:00 :00+0000”?
请注意,我在 Docker VM(Centos linux)Java 8 上运行 Cassandra 3.0.5。
任何建议表示赞赏。
谢谢。
java - 创建新用户时出现 Cassandra 身份验证错误
我在 4 个节点中运行 cassandra,这 4 个节点在一个集群中。现在我想将一个节点设置为密码验证器。我在 cassandra.yaml 文件中进行了必要的更改并重新启动了 cassandra。现在它创建了新用户 CASSANDRA,我已经使用这些详细信息登录到 cassandra。为了方便起见,我想创建另一个新用户。在给出创建用户命令后,我得到如下错误,更多的是我在 Linux 环境中执行这些过程。请帮助我解决这个问题。提前致谢。
ServerError: ErrorMessage code=0000 [服务器错误] message="java.lang.RuntimeException: org.apache.cassandra.exceptions.UnavailableException: 无法达到一致性级别LOCAL_ONE">
cassandra - CStress 图具有 3.6 和 3.7 的“未定义”聚合统计信息
我的集群目前运行 Cassandra 3.6。当我使用 -graph 选项运行 cassandra 3.6 的 cassandra-stress 工具时,当工具运行时,聚合在控制台输出中显示良好,但在图表上,每个统计数据都显示为“未定义”(图表本身很好)。如果我在具有相同工作负载的节点上运行 cassandra 3.7 的 CStress 工具,也会发生同样的情况。我仍然可以运行 cassandra 3.5 的 CStress 工具,当我这样做时,实际的统计数据就会显示出来。这是 Cassandra 最新两个版本的错误,还是我需要更改我使用该工具的方式?
cassandra - Cassandra 3.3 - 集群节点 - 不规则行为
我有一个符合节点
{ 192.168.120.57, 192.168.120.58, 192.168.120.59 } 的 Cassandra 集群,复制因子为 2
我检测到节点 192.168.120.59 行为不正常
-> 服务正在运行(sudo service cassandra status)
-> nodetool 还告诉我节点正在运行
但是->我无法通过 DevCenter 连接(我上次尝试可以连接,而 cassandra.yml 没有改变)
我查看了这个节点(192.168.120.59)的日志,并显示:
在其他节点,日志显示了很多次:
这些是我做过但没有用的事情:
1)重新启动机器。
2)节点工具修复。
3)节点工具擦洗。
在此之后,我关注了这个页面https://docs.datastax.com/en/cassandra/1.2/cassandra/operations/ops_backup_noderestart_t.html
在出现异常行为的节点上:
1)删除所有表
2)复制并粘贴快照子目录中的表
3)重新启动 cassandra 服务(sudo service cassandra start
)
现在开发中心可以连接
4)我又跑nodetool repair
了,好像还没完呢。它已经运行了 3 个多小时,仍然处于 0% 状态(但现在没有抛出另一个错误),但我认为它不起作用。
在此日志中出现:
1)failed with error [repair #7990e900-3a30-11e6-9861-e998758604bf on recommendersjobs/postulationsbyuser
(靠近中间)
2)Validation failed in /192.168.120.58 (progress: 0%)
(在最后一部分)
当这个修复正在运行时(我认为它正在运行),在这个节点的日志和集群的其他节点中,这出现了很多次:
注意 1:由于复制因子为 2,cassandra 过去和现在都在工作。
注意 2:cassandra 集群正在生产中使用,应用程序正在插入和读取行。
我能做些什么来纠正这种不正常的行为?
我想创建一个新节点并将其与不规则节点交换,这样做的正确步骤是什么?
cassandra - 定义 4000 列但在 Apache Cassandra 中每行使用 200?
如果我定义了很多列但每行使用很少但不同的集合,我们是否会显着降低性能或增加磁盘大小?