RCassandra无法连接到Cassandra数据库。

3

我是Cassandra和R的新手。当我使用RCassandra包连接到Cassandra数据库时,连接已经建立。但是,当尝试使用任何keyspace时,R没有响应。我使用了以下语句。

c <- RC.connect('192.168.1.20', 9042)
RC.use(c, 'effesensors')

请简要介绍如何使用RCassandra来避免这个问题。


当你说“尝试使用任何键空间”时,你指的是什么?你是尝试从中进行选择吗?还是执行插入/删除操作?此外,你能使用Cassandra的命令行接口(CLI)连接到Cassandra集群吗? - Nathan
调用 RC.use(c, 'effesensors') 语句导致 RStudio 进入“未响应”状态。 - D. Venkata Naresh
在Cassandra CLI中运行查询怎么样? - Nathan
我正在使用cqlsh。它运行良好。 - D. Venkata Naresh
4个回答

1

使用RODBC而不是RCassandra。我们需要安装Cassandra ODBC驱动程序。


1

谢谢@D. Venkata Naresh,您使用RODBC驱动程序的建议解决了我的问题。

我正在使用R和datastax cassandra社区版。

这是我遵循的链接,在我的Windows机器上配置ODBC驱动程序。

https://www.datastax.com/dev/blog/using-the-datastax-odbc-driver-for-apache-cassandra

接下来,在我的R Studio中,以下是连接和从Cassandra获取数据的命令:

    install.packages("RODBC")
library("RODBC")
require("RODBC")

conn <- odbcConnect(<ODBC datasource name>)

dataframe <- sqlFetch(conn, <column family / table name>)

dataframe

希望这个答案能够帮助那些遇到RCassandra问题的人。

1
您是否知道您可能正在使用 Cassandra 的非默认端口?如果您能提供 Cassandra 版本和 RStudio 版本,我就可以更新我的回答。我发现 tarkalabs 的 this tutorial 对于在尝试连接之前需要执行的步骤清单非常有用。
从教程中可以看到:
现在使用 connect.handle <- RC.connect(host="127.0.0.1", port=9160) 连接到您的数据库。 Cassandra 默认监听端口为 9160,但您可以根据您的配置进行更改。要将群集类型显示到提示符中,请使用 RC.cluster.name(connect.handle)
只需验证您已连接并且 Cassandra 实例正在运行,请尝试以下命令:RC.describe.keyspaces(connect.handle)
这应该会返回一个包含您键空间设置的列表。如果没有返回任何内容,则说明您未连接或您的 Cassandra 实例未正确安装。
示例输出:
$system_traces$strategy_options
replication_factor 
               "2" 

$system_traces$cf_defs
named list()

$system_traces$durable_writes
[1] TRUE

如果我的答案没有起作用,请告诉我你的结果,我会更新我的答案。祝你好运!


谢谢Nathan先生。我之前也做了同样的事情,但是我遇到了问题。我使用的是RStudio版本0.99.489,R版本3.2.2(32位),RCassandra版本0.1-3,Datastax Cassandra服务器2.2.3(64位)。Cassandra服务器安装在另一个系统中。 - D. Venkata Naresh
你或其他系统是否位于代理后面? - Nathan
No.. RC.connect('192.168.1.20', 9042) 给出了 <pointer: 0x10f5dd80> attr(,"class") [1] "CassandraConnection" - D. Venkata Naresh

0

我看到了你上面的评论,你使用了错误的端口。你应该运行以下命令: c <- RC.connect('192.168.1.20', 9160) 这一定会对你有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接