问题标签 [cassandra-jdbc]
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 以 5 分钟为间隔读取超时?
谁能解释为什么我的 Cassandra 集群中每隔 4-5 分钟就会发生一次读取超时。我几乎可以始终如一地看到这一点,并且能够始终如一地重现这一点。
读取吞吐量保持在每秒 1 个请求,集群中没有发生写入或压缩。读取超时在 cassandra.yaml 文件中配置为 5 秒。我正在使用 datastax java 驱动程序 2.1.14。
超时期间的跟踪不起作用。在 cqlsh 中第二次手动读取相同的行键成功。查看了这个https://issues.apache.org/jira/browse/CASSANDRA-8194 jira,它看起来与我看到的问题相似。我们使用具有此修复程序的 dse 4.6.2。尝试在我的集群中禁用身份验证,但看到相同的 4-5 分钟读取超时。
请提出解决此问题的方法。
谢谢, 斯里瓦桑
grails - 百万条记录后,cassandra-orm 的性能大幅下降
我正在使用 cassandra-orm 插件 ( cassandra-orm:0.4.5 ) 将点击从 Postgres DB 迁移到 Cassandra。(我知道我可以使用原始数据导入,但我想使用由插件维护的 groupBy 和显式索引)。
迁移过程很简单:我从 Postgres(通过 GORM)中选择一堆点击,然后将它们刷新到 Cassandra。每次点击都是一条新记录,并且在 Grails 中创建一个新对象并保存在 Cassandra 中。使用 20 个线程,我能够达到 2000 次点击/秒的吞吐量。在导入 500 万次点击后,性能开始急剧下降到 50 次点击/秒。
我做了一些分析,发现有 19 个线程正在等待(停放),一个线程正在对 Groovy 的 AbstractConcurrentMapBase 执行重新哈希处理。
等待线程的堆栈跟踪:
重新哈希线程的堆栈跟踪:
经过数小时的调试,我发现问题出在添加到所有插件管理对象的动态属性“_cassandra_cluster_”中:
然后,此属性在内部保存在ThreadManagedMetaBeanProperty instance2Prop 映射中。当访问动态属性时def cluster = click._cassandra_cluster_
,单击实例将保存到带有软引用的 instance2Prop 映射中。到目前为止一切顺利,软引用可以被垃圾收集,对吧。然而,在 ManagedConcurrentMap 实现中似乎存在一个错误,它忽略了垃圾收集的元素并继续重新散列和扩展地图(描述here和here)。
解决方法
由于地图内部保存在类级别,唯一可行的解决方案是重新启动服务器。最终我开发了一个肮脏的解决方案,从僵尸元素中清除内部地图。以下代码在单独的线程中运行:
你有使用 cassandra-orm 或任何其他连接到 cassandra 的 grails 插件的生产经验吗?
cassandra - 将数据插入 Cassandra 时出错
我正在学习 Apache Kafka-storm-cassandra 集成。我正在使用 Kafka Spout 从 Kafka 集群读取 JSON 字符串。然后将其传递给解析 JSON 并将所需值发送到将其写入 Cassandra DB 的第二个 Bolt。
但我收到了这些错误。
java.lang.RuntimeException: com.datastax.driver.core.exceptions.SyntaxError: line 1:154 mismatched character ''期待'''
表已存在错误:
com.datastax.driver.core.exceptions.AlreadyExistsException:表 query.productcount 已存在于 com.datastax.driver.core.exceptions.AlreadyExistsException.copy(AlreadyExistsException.java:85)
我的主要拓扑:
标准化螺栓:
CassandraWriter 螺栓:
请建议我需要做的更改。
提前感谢!
java - Cassandra中未排序的地图类型
我在 Cassandra 2.1.7 中使用地图类型列。我的要求是我必须保留我在 Cassandra 中插入的值的顺序,以便以后检索。为此,我在 Java 中使用了 LinkedHashMap 来达到它的目的。
现在,在调试时,我发现在 Java 处理键值对之前保留了顺序,但在执行“插入”CQL 命令时,Cassandra 在不询问我的情况下按升序重新排列映射键,我不喜欢 :-)
我在 Cassandra 中定义地图类型时搜索了提供排序选项,但由于地图类型在 Cassandra 中的灵活性有限,我一无所获。
您能否提出任何解决方法来满足上述期望!
cassandra - datastax cassandra -com.datastax.shaded.netty.channel.ConnectTimeoutException 中的意外连接超时
我们在应用程序第一次启动时就在 Session 对象中获得连接。我们的调度程序使用它不断地将数据插入到 Cassandra 中。但是在某个时间点,它会出现连接超时,然后与 Cassandra 重新连接,并且应用程序正常工作。
调度程序经常超时。(我已将我的 ip 更改为...在这篇文章中)
jdbc - RazorSQL - 无法连接到 Cassandra DB
我正在尝试通过 RazorSQL 连接到 CassandraDB。我是 RazorSQL 的新手。
后续步骤:
- 在顶部菜单中 --> 连接 --> 添加连接配置文件 --> 在出现的弹出菜单中输入所有详细信息(驱动程序位置、主机、端口号等)
我尝试了 RazorSQL 中的 AutoDownload Driver 选项,还尝试了各种 Cassandra JDBC 驱动程序。
cassandra-jdbc-1.2.5、cassandra-jdbc-2.1.1、CassandraJdbcDriver.zip、DataStaxCassandraODBC32。
我收到此错误消息:
错误:尝试建立与数据库的连接时发生错误:
JDBC URL:jdbc:cassandra://88.198.37.102:9042
org.apache.thrift.transport.TTransportException:读取负帧大小(-2113929216)!
任何人都可以帮助我如何使用这个连接到 Cassandra DB .. 非常感谢你提前。
r - Unable to Connect to Cassandra Database from R using JDBC
I am trying to connect R with Cassandra. Following is my code:
When I run above code in R, I get following error:
Any ideas how to solve this error? Thanks in advance!
cassandra - 如何将 Cassandra UDT 转换为可选类型
我有一个用户表及其对应的 POJO
我想将 UDT“地址”转换为可选。因为我使用“cassandra-driver-mapping:3.0.0-rc1”和“cassandra-driver-extras:3.0.0-rc1”,所以我可以使用很多编解码器。
例如:可选编解码器
我想将它注册到 CodecRegistry 并将 TypeCodec 传递给 OptionalCodec 的构造函数。
但是 TypeCodec 是一个抽象类,我无法启动它。
有人知道如何启动 OptionalCodec 吗?
谢谢你,@Olivier Michallat。你的解决方案没问题!
但是我对将 OptionalCodec 设置为 CodecRegistry 有点困惑。您必须首先启动会话。然后将会话传递给 MappingManager,获取正确的 TypeCodec 并注册编解码器。
为了获得 TypeCodec ,您必须首先进行初始会话,这有点奇怪!?
java - 找不到库 org.apache.Cassandra.thrift.clock
我在 maven 和其他几个网站中搜索了 jar 文件,但找不到 jar 文件和 maven 依赖项。请帮帮我。
java - Spring Data Cassandra - 检索受影响的行
是否有可能在更新语句中获得受影响的行?
我是 Cassandra 的新手,所以我不知道我是否可以像 JDBC 操作那样做到这一点。