私はJavaからCassandraに接続する最良の方法を研究しています。私はローカルホスト上で何らかのチャットアプリケーションを行っています(新しいメッセージの作成、更新、削除を可能にします)が、ベストプラクティスを研究したいと思います。誰も私に最高のソリューションを選ぶ手伝いができますか?Cassandra DatastaxとJava - 接続を設定する最良の方法
最初の一例は、1.6をスパークです:
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;
}
だから、私はまた、ビルダーは自動的に1が存在する場合は、既存のSparkContextを再利用し、それがない場合SparkContextを作成するスパーク2.xのための一例を得ました存在しない。ビルダーで設定された設定オプションは、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;
}
私もプールのオプションを研究したが同様に、セッションの例の1が見つかりました:だから私は(私は、単一の実行するつもり接続を行うための最も効率的な方法は何か、疑問に思う
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のPooling Optionの例はどうでしょう?(SparkSessionに既に含まれているかどうかは100%確信していません) 関連する質問がありましたが、私には十分な情報がありません:https://stackoverflow.com/questions/42148056/cassandra-datastax-optimal-poolingoption
@nervsv:ここだ、それがどのように動作するかの説明があります。私は、JavaとCassandraの間の接続を確立する最良の方法を研究しています(メッセージの取得、メッセージの投稿など) –