Cassandra Datastax和Java—建立连接的最佳方法
我正在研究从Java连接到Cassandra的最佳方法,并找到了大量的示例。我正在本地主机上做一些聊天应用程序(允许创建新消息、更新消息或删除消息),但我也想研究最佳实践。有人能帮我选择一个最好的解决方案吗 第一个示例是Spark 1.6:Cassandra Datastax和Java—建立连接的最佳方法,java,cassandra,datastax,Java,Cassandra,Datastax,我正在研究从Java连接到Cassandra的最佳方法,并找到了大量的示例。我正在本地主机上做一些聊天应用程序(允许创建新消息、更新消息或删除消息),但我也想研究最佳实践。有人能帮我选择一个最好的解决方案吗 第一个示例是Spark 1.6: public static JavaSparkContext getCassandraConnector(){ SparkConf conf = new SparkConf(); conf.setAppName("Chat
public static JavaSparkContext getCassandraConnector(){
SparkConf conf = new SparkConf();
conf.setAppName("Chat");
conf.set("spark.driver.allowMultipleContexts", "true");
conf.set("spark.cassandra.connection.host", "127.0.0.1");
conf.set("spark.rpc.netty.dispatcher.numThreads","2");
conf.setMaster("local[2]");
JavaSparkContext sc = new JavaSparkContext(conf);
return sc;
}
因此,我还得到了Spark 2.x的一个示例,其中构建器将自动重用现有的SparkContext(如果存在),并创建一个SparkContext(如果不存在)。构建器中设置的配置选项在I/O期间自动传播到Spark和Hadoop
public static SparkSession getSparkSession(){
SparkSession sparkSession = SparkSession
.builder()
.appName("Chat")
.config("spark.driver.allowMultipleContexts","true")
.config("spark.sql.warehouse.dir", "/file:C:/temp")
.config("spark.cassandra.connection.host", "127.0.0.1")
.config("spark.cassandra.connection.port", "9042")
.master("local[2]")
.getOrCreate();
return sparkSession;
}
我还研究了池选项,但找到了一个会话示例,如:
public static Session getPoolSession(){
PoolingOptions poolingOptions = new PoolingOptions();
poolingOptions
.setCoreConnectionsPerHost(HostDistance.LOCAL, 4)
.setMaxConnectionsPerHost( HostDistance.LOCAL, 10)
.setMaxRequestsPerConnection(HostDistance.LOCAL, 32768)
.setMaxRequestsPerConnection(HostDistance.REMOTE, 2000)
.setHeartbeatIntervalSeconds(120);
Cluster cluster = Cluster.builder()
.addContactPoints("127.0.0.1")
.withPoolingOptions(poolingOptions)
.build();
Session session = cluster.connect("chat");
return session;
}
所以我想知道,建立连接最有效的方法是什么(我还要执行单语句和PreparedStatements)。我认为Spark 1.6的第一种方式不如2.x好,但是2.x的池选项示例如何(我不确定SparkSession是否已经包含了这个选项)?
我找到了相关的问题,但没有足够的信息告诉我:您是在尝试使用spark连接到cassandra,还是仅使用java连接到cassandra Spark大部分时间用于分析工作流,单个insert/update语句不是它的用例 我建议使用常规datastax java驱动程序: 正如池选项问题中所回答的,您不需要触摸这些参数,默认值应该可以完成这项工作。以下是对其工作原理的解释:
@nervsv我得到了一个REST应用程序JS-Java-Cassandra DB。我正在研究在Java和Cassandra之间建立连接的最佳方法(获取消息、发布消息等)