问题标签 [datastax-java-driver]

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 投票
1 回答
2243 浏览

groovy - 使用 Datastax 和 CQL 在 Cassandra 中获取随机行

我是 NoSQL n00b,只是尝试一下。我在 cassandra 2.0.2 中有以下带有单个表的键空间

我在 Persons 表中有近 500 个条目。我想从表中选择任何随机行。在 CQL 中有没有一种有效的方法来做到这一点?我正在使用 groovy 调用 datastax 公开的 API。

0 投票
2 回答
904 浏览

datastax-enterprise - org.jboss.netty.channel.ChannelPipelineException:无法初始化管道

我有一个使用 Java 驱动程序连接到 Cassandra 的应用程序,获取一些配置并根据结果生成并执行一些 PIG 脚本。

现在,当 PIG 所需的 jar 不在类路径中时,我能够成功连接到 Cassandra。同样,当我没有使用 java 驱动程序连接到 Cassandra 来检索配置时,我能够启动 PigServer 类并使用整个 DSE 堆栈执行脚本/语句。

当我同时使用它们时,我得到以下异常:

我看到其他人看到了类似的异常,但是在尝试从 MapReduce 任务执行 Cassandra 语句时,这不是我的情况: https ://groups.google.com/a/lists.datastax.com/forum/#!topic/ java-driver-user/FhW_8e4FyAI http://www.datastax.com/dev/blog/the-native-cql-java-driver-goes-ga#comment-297187

谢谢!

0 投票
1 回答
7188 浏览

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

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

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

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

为什么会这样?

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

测试程序代码:

0 投票
3 回答
15703 浏览

cassandra - 关于如何在 DataStax java 驱动程序中使用 map cql 类型的示例

我正在尝试使用 datastax java 驱动程序来更新和查询具有映射字段的列族。有没有人举例说明如何将 cql 集合与 Datastax Java 驱动程序一起使用?

谢谢

0 投票
3 回答
18743 浏览

java - 使用 DataStax Java 驱动程序 1.0.4 通过 CQL 连接到 Cassandra 时出现异常

我的笔记本电脑上运行着 Cassandra 1.2.11。我可以使用它连接到它nodetoolcqlsh但是当我尝试使用 DataStax 1.0.4 Java API 使用 CQL 3.0 进行连接时,我收到以下错误:

我正在使用以下代码进行连接,取自 DataStax 文档。我尝试了几个端口号,包括将withPort()呼叫留在外面,但似乎没有任何效果。

使用telnet我可以验证 Cassandra 服务器是否确实在侦听我指定的每个端口。我还验证了所有必需的库 jar 文件都在我的类路径中,如文档中所述。

0 投票
3 回答
13492 浏览

java - Cassandra Datastax 驱动程序 - 连接池

我正在尝试了解 Datastax Cassandra Driver 中的连接池,以便更好地在我的 Web 服务中使用它。

我有 1.0 版的文档。它说:

Java 驱动程序使用异步连接,因此可以在同一连接上同时提交多个请求。

他们对连接的理解是什么?当连接到一个集群时,我们有:一个Builder、一个Cluster和一个Session。其中哪一个是连接?

比如有这个参数:

maxSimultaneousRequestsPerConnection - 到主机的所有连接上的同时请求数,之后创建更多连接。

因此,在连接池的情况下(这是我所期望的),这些连接是自动创建的。但究竟是什么联系?集群对象?会议?

我正在尝试决定在我的网络服务中保持“静态”的内容。目前,我决定让 Builder 保持静态,因此对于每次调用,我都会创建一个新的集群和一个新的会话。这个可以吗?如果集群是连接,那么应该没问题。但是是吗?现在,记录器说,对于每个呼叫:

2013:12:06 12:05:50 DEBUG Cluster:742 - 使用接触点启动新集群

2013:12:06 12:05:50 DEBUG ControlConnection:216 - [控制连接] 刷新节点列表和令牌映射

2013:12:06 12:05:50 调试 ControlConnection:219 - [控制连接] 刷新模式

2013:12:06 12:05:50 DEBUG ControlConnection:147 - [控制连接] 成功连接到...

那么,它每次都连接到集群吗?这不是我想要的,我想重用连接。

那么,连接实际上是Session?如果是这种情况,我应该保持集群静态,而不是生成器。

我应该调用什么方法,以确保尽可能重用连接?

0 投票
1 回答
1741 浏览

java - 使用 CQL 3.0 在集合上创建自定义索引

我一直在查看 CQL 3.0数据建模文档,该文档描述了带有标签的歌曲列族,创建如下:

我想获取所有具有特定标签的歌曲的列表,所以我需要添加一个适当的索引。

我可以很容易地在列上创建索引title,但是如果我尝试索引tags作为集合的列,如下所示:

我从 DataStax Java 驱动程序 1.0.4 收到以下错误:

根据 JIRA 问题CASSANDRA-4511,这看起来可能会在更高版本的 Cassandra (2.1) 中得到修复。但是,我目前正在使用 Apache Cassandra 1.2.11,并且还不想升级。不过根据问题CASSANDRA-5615,在 Cassandra 1.2.6 中,支持集合上的自定义索引

问题是,唯一可用的文档指出:

Cassandra 支持创建自定义索引,仅供内部使用,超出本文档的范围。

但是,它确实建议使用以下语法:

class_name此 CQL 语句中指定的内容是什么?

有没有更好的方法来索引标签,以便我可以在歌曲表中查询具有特定标签的歌曲列表?

0 投票
1 回答
3775 浏览

java - InvalidTypeException:CQL 类型文本的值 1 的类型无效,期望类 java.lang.String 但类 [Ljava.lang.Object; 假如

我正在尝试使用 Datastax Java 驱动程序插入 Cassandra 数据库。但是每次我在线路上遇到异常时prBatchInsert.bind-

下面是我的方法,它接受作为userId输入和包含attributesMapkey作为我Column Name的值作为该列的实际值

我在这里做错了什么?有什么想法吗?

0 投票
1 回答
4697 浏览

java - Cassandra NoHostAvailableException 仍然存在节点

我在一个 DC 中有两个 C* 2.0.2 节点(在 cassandra.yaml 中有默认配置)和一个 RF=2 的键空间。两个客户端使用 Datastax Java 驱动程序 1.0.3 连接到此 DC。客户端使用 CL=ONE 从/向 C* 读取和写入数据,没有任何错误。但是当我关闭一个节点时,两个客户端都会出现大量异常:

在那一堆异常之后,客户端继续成功地与另一个仍然活着的节点一起工作。我应该怎么做才能收到任何 NoHostAvailableException 因为一次至少有一个活动节点并且使用了 CL=ONE?

更新: 当我关闭两个节点之一时,有时会在我的应用程序日志中看到以下异常:

如果我只关闭一个节点,为什么两个节点都不可用?第二个现在还活着,我可以用 cqlsh 连接到它。

0 投票
0 回答
253 浏览

cassandra - 使用 SSTableLoader 将批量数据插入 cassandra 后需要采取哪些必要步骤?

卡桑德拉的新手在这里。

我通过从 CSV 文件创建 SSTables 将 5000 万条记录插入到 cassandra,然后使用 SSTableLoader 将它们加载到数据库中。是否需要采取任何后 SSTableLoader 步骤?例如:做一个节点工具修复..等

我面临的问题是,当我尝试通过二级索引查询时,我无法检索一些记录,即使在查询所有记录时该记录显示在列表中。

例如:select * from columfamily limit 50

然后,当我使用 value2 作为二级索引从其中一条记录中查询时,它将返回 0 行。

任何帮助深表感谢!