RCassandra没有连接到Cassandra数据库

时间:2015-11-30 08:34:16

标签: r cassandra

我是Cassandra和R的新手。当我使用<div id="edit-modal" class = "modal fade" tabindex="-1" role="dialog" style="padding-top: 150px;" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <!-- Modal content--> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">&times;</button> <h4 class="modal-title" id="myModalLabel">Choose your slots</h4> </div> <div class="modal-body"> <p class="edit-content">service id:</p> <form role="form1" name="loginform" method="post" class="login-form"> <div class="form-group"> <table align="center"> <tr> <td colspan="2"><center>slot 1</center></td> </tr> <tr> <td><input type="date" id="datePicker" name="slot1_dt"> </td> <td><input type="time" name="slot1_tm"> </td> </tr> <tr> <td colspan="2"><center>slot 2</center></td> </tr> <tr> <td><input type="date" id="datePicker" name="slot2_dt"> </td> <td><input type="time" name="slot2_tm"> </td> </tr> <tr> <td colspan="2"><center><button type="submit" name="book" class="btn btn-default" value="book" style="font-size: 14px !important;">Book</button></center></td> </tr> </table> <?php if(isset($_REQUEST["book"])) { if($_REQUEST["book"]) { $service_id=$_REQUEST["serv_id"]; $customer_id=$_REQUEST["cust_id"]; $slot1_dt=$_REQUEST["slot1_dt"]; $slot2_dt=$_REQUEST["slot2_dt"]; $slot1_tm=$_REQUEST["slot1_tm"]; $slot2_tm=$_REQUEST["slot2_tm"]; $slot1=$slot1_dt." ".$slot1_tm; $slot1 = date("Y-m-d H:i:s",strtotime($slot1)); $slot2=$slot2_dt." ".$slot2_tm; $slot2 = date("Y-m-d H:i:s",strtotime($slot2)); $insertqry="INSERT INTO `tblappointments`(`customer_id`, `service_id`, `preferred_slot1_date`, `preferred_slot2_date`) VALUES ('$customer_id','$service_id','$slot1','$slot2')"; mysqli_query($con, $insertqry) or die(mysqli_error($con)); } } ?> </div> </form> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> 包连接到Cassandra数据库时,连接正在建立。但是当尝试使用任何键空间时,R没有响应。我使用了以下陈述。

RCassandra

请简要介绍一下如何使用c <- RC.connect('192.168.1.20', 9042) RC.use(c, 'effesensors') 来避免此问题。

4 个答案:

答案 0 :(得分: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

如果我的答案不起作用,请告诉我你的结果是什么,我会更新我的答案。祝你好运!

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

这是我在windows机器中配置ODBC驱动程序时所遵循的链接。

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

然后,在我的R工作室中,这些是连接和从Cassandra中获取的命令

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

conn <- odbcConnect(<ODBC datasource name>)

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

dataframe

希望,这个答案可以帮助那些面临RCassandra问题的人。

答案 3 :(得分:0)

我在上面看到你的评论,你使用了错误的端口。您应该运行以下命令 c&lt; - RC.connect('192.168.1.20',9160) 这绝对适合你。