我在尝试查询Cassandra 1.2.4中的一行时遇到问题当我尝试使用Cassandra-cli查询行时,我收到此错误:
框架尺寸(75209759)大于最大长度(15728640)!org.apache.thrift.transport.TTransportException:帧大小(75209759)大于最大长度(15728640)!org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:137)org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
我试图更改Cassandra.yaml中的下一个配置参数:
# Frame size for thrift (maximum field length).
thrift_framed_transport_size_in_mb: 1024
# The max length of a thrift message, including all fields and
# internal thrift overhead.
thrift_max_message_length_in_mb: 1048
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用Cassandra cli查询行时,我得到了同样的错误.
当我在日志中出现cassndra时出现:
INFO 14:48:34,133 Using TFramedTransport with a max frame size of 1073741824 bytes.
INFO 14:48:34,137 Using synchronous/threadpool thrift server on localhost : 9160
INFO 14:48:34,137 Listening for thrift clients...
Run Code Online (Sandbox Code Playgroud)
但是在Cassandra cli中没有反映出变化,这是我们使用的版本的问题吗?
谢谢你的帮助
我是Cassandra的新手,我想知道Cassandra RACKS.我也对Cassandra结构感到困惑.假设我在Cassandra中拥有AROUND 70列族和两个AWS2实例.
1.how many Data Center will be used.
2.how many nodes each rack will have ?
3.is it possible to divide column family in multiple Key space.
Run Code Online (Sandbox Code Playgroud) 卡桑德拉专家您好,
如何获取Cassandra集群中的进程列表(类似于show processlistMySQL的命令)?我很困惑为什么我找不到任何关于这个主题的帖子。
谢谢。
根据这个问题,Cassandra的存储格式在3.0中更新.
如果之前我可以使用cassandra-cli来查看SSTable是如何构建的,那就得到这样的结果:
[default@test] list phonelists;
-------------------
RowKey: scott
=> (column=, value=, timestamp=1374684062860000)
=> (column=phonenumbers:bill, value='555-7382', timestamp=1374684062860000)
=> (column=phonenumbers:jane, value='555-8743', timestamp=1374684062860000)
=> (column=phonenumbers:patricia, value='555-4326', timestamp=1374684062860000)
-------------------
RowKey: john
=> (column=, value=, timestamp=1374683971220000)
=> (column=phonenumbers:doug, value='555-1579', timestamp=1374683971220000)
=> (column=phonenumbers:patricia, value='555-4326', timestamp=137468397122
Run Code Online (Sandbox Code Playgroud)
在最新版本的Cassandra中,内部正式会是什么样子?你能提供一个例子吗?
我可以使用什么实用程序以上面列出的方式查看Cassandra中表的内部表示,但是使用新的SSTable格式?
我在互联网上找到的所有内容都是分区标题如何存储列名,行存储聚类值以及没有重复值.
我该怎么看?
我在CQL3中有一个这样的表
create table product_info
(
key text,
value text,
Primary key (key)
);
Run Code Online (Sandbox Code Playgroud)
这是一张垂直的桌子.因为我可以插入带有(键,值)对的新行.
样本数据将是:
产品的详细信息
key | value
-------------------------------------------
product_name | sample_product
quantity | 2
manufacture | sample_manufacturer
.... ....
Run Code Online (Sandbox Code Playgroud)
但我需要的是一个水平表,我可以在不改变表的情况下动态添加列.
产品的详细信息
product_name | quantity | manufacture | ....
------------------------------------------------------------------------------
sample_product | 2 | sample_manufacturer | ....
Run Code Online (Sandbox Code Playgroud)
我需要像上表那样的结构,需要不断添加列.
CQL3提供了一个动态添加列的选项,但在此之前我们需要更改表.
我需要知道是否有任何其他方法允许这样做.
我发现通过使用thrift api是可能的,但由于不再支持thrift,所以不能使用它.
是否有其他API如hector或其他任何支持此功能的API?
我确实经历了类似的堆栈溢出帖子,但我没有得到更好的解决方案.
Cassandra 公布了它的技术限制,但没有提到允许的最大列数。是否有最大列数?我需要存储 400 多个字段。这在 Cassandra 中可能吗?
我有一个由 3 个 Cassandra 2.0 节点组成的集群。我的应用程序编写了一个测试,尝试将一些数据写入 Cassandra 或从 Cassandra 读取一些数据。一般来说,这工作得很好。
\n\n好奇的是,在我重新启动计算机后,此测试将失败,因为写入后我读取了之前写入的相同值,并且我得到的是 null 而不是该值,但写入时也不例外。\n如果我手动截断使用的列族,测试将通过。之后我可以按照我想要的频率执行这个测试,它一次又一次地通过。此外,Cassandra 中是否有值并不重要。结果总是一样的。
\n\n如果我查看 CLI 和 CQL-shell,会发现两种不同的视图:
\n\n\n\n\n\n有谁知道出了什么问题吗?CLI中的时间戳在重新执行后更新,所以这似乎是一个读取问题?
\n\n我的代码的一部分:\n对于我尝试过的插入
\n\nInsert.Options insert = QueryBuilder.insertInto(KEYSPACE_NAME,TABLENAME)\n .value(ID, id)\n .value(JAHR, zonedDateTime.getYear())\n .value(MONAT, zonedDateTime.getMonthValue())\n .value(ZEITPUNKT, date)\n .value(WERT, entry.getValue())\n .using(timestamp(System.nanoTime() / 1000));\nRun Code Online (Sandbox Code Playgroud)\n\n和
\n\nInsert insert = QueryBuilder.insertInto(KEYSPACE_NAME,TABLENAME)\n .value(ID, id)\n .value(JAHR, zonedDateTime.getYear())\n .value(MONAT, zonedDateTime.getMonthValue())\n .value(ZEITPUNKT, date)\n .value(WERT, entry.getValue());\nRun Code Online (Sandbox Code Playgroud)\n\n我的选择看起来像
\n\nSelect.Where select = QueryBuilder.select(WERT)\n .from(KEYSPACE_NAME,TABLENAME)\n .where(eq(ID, id))\n .and(eq(JAHR, zonedDateTime.getYear()))\n .and(eq(MONAT, zonedDateTime.getMonthValue()))\n .and(eq(ZEITPUNKT, Date.from(instant)));\nRun Code Online (Sandbox Code Playgroud)\n\n一致性级别为 QUORUM(两者均适用)和复制因子 …
cql cassandra cassandra-cli datastax-java-driver cassandra-2.0
更新 - 短版本:前3个节点(机架1-3)
的PropertyFileSnitch cassandra-topology.properties指出只有这些节点在DC1中,而其他节点在DC2中通过指定默认值default=DC2:r1.当通过添加节点4和5来扩展集群时,这些节点的PropertyFileSnitch被配置为在DC1以及机架4和5中添加它们,但是来自前3个节点的snitch保持不变,因此集群在此不一致的状态.
我的问题是这个集群是否可以重新平衡(固定).如果我在修复完成后重新启动完整群集就足够了cassandra-topology.properties吗?
请告知我如何安全地重新平衡群集.
更长的版本:
我是Cassandra的新手,我开始研究已经建成的集群.
我在运行Cassandra 3.0.5版本的不同机架上的同一数据中心有5个节点,带有vnodes num_tokens: 256和一个密钥空间replication = {'class': 'NetworkTopologyStrategy', 'DC1': '3'} AND durable_writes = true.
从历史上看,只有3个节点,并且通过额外的2个节点扩展了集群.我有一个自动修复脚本,可以nodetool repair使用选项运行parallelism: parallel, primary range: false, incremental: true, job threads: 1.
插入大量数据后,问题就开始出现了.在节点4或5上运行修复脚本时,节点2会过载:CPU使用率保持在100%,MutationStage队列增长,GC暂停至少需要1秒,直到Cassandra进程最终死亡.修复结果通常是failed with error Stream failed (progress: 0%).
nodetool status在节点1,2或3上运行命令时,我得到以下输出:
nodetool status
但是当cassandra-topology.properties在节点4或5上运行命令时,我得到以下输出:
cassandra-topology.properties
在进一步调查之后,似乎在群集扩展后,在节点1,2和3(它们也是此群集的种子)上未更新PropertyFileSnitch default=DC2:r1.
谢谢!
我是一名java开发人员,对Linux和Cassandra来说很新.我正在使用CentOS6.我正在尝试在Linux机器上安装Cassandra3.4.我已经按照这里提到的步骤进行了操作.
看起来Linux机器已经安装了Python.当我尝试python -V
连接到Linux机器的putty 时,我的putty中得到了以下输出.Python 2.6.6
.我假设安装了python.FYKI,我不知道python是如何工作的.
完成安装过程后,我使用以下命令运行cassandra服务./opt/cassandra/bin/cassandra -f -R &.这一切都很好.
现在,问题来了.当我运行时,./cqlsh我得到以下错误.
找不到合适的python解释器.
我做了我的研究并尝试了几个选项,但到目前为止没有任何成果.
上述链接均不适合我.或者我可能不够聪明.任何帮助将非常感激.谢谢.
我试图连接到我的远程cassandra数据库cqlsh,
Connection error: ('Unable to connect to any servers', {'XX.XX.XX.XX': ProtocolError("cql_version '3.4.0' is not supported by remote (w/ native protocol). Supported versions: [u'3.2.1']",)})
Run Code Online (Sandbox Code Playgroud)
我从这个链接安装了Planet Cassandra版本3.2.1 .
我运行命令:nodetool version它显示3.2.1版本.
我在这里发现了类似的问题,但这对我没有帮助.