欢迎投稿

今日深度:

cassandra DATASTAX 客户端纪要,cassandradatastax

cassandra DATASTAX 客户端纪要,cassandradatastax


本文当作是自己的一个技术备份,如果有不对的地方,请大神不要喷。
cassandra 升级到了2.0.1 ,但是常用的Hector 客户端,到现在只是支持到了cassandra 1.2.5 的版本,所以暂时放弃了Hector,以待后面观察。
DATASTAX 把cassandra当作核心业务,并且支持了最新的cassandra版本,所以客户端选择了DATASTAX 的。
源代码:https://github.com/datastax/java-driver
大概看了一下这个客户端,就是把业务转换为cql,进行执行。


1.在服务器(192.168.3.141)上启动了一个单点的cassandra;(具体配置后续);

2.在cassandra中建立了 keyspace ,在keyspace中建立了 users CF。

3.在users中插入数据。
cqlsh:mykeyspace> SELECT * FROM mykeyspace.users ;
 user_id | fname | lname
---------+-------+--------
    1745 |  john |  smith
    1744 |  john |    doe
    1746 |  john | smith2
(3 rows)
2.编写客户端进行查询;

 Cluster cluster = Cluster.builder().addContactPoint("192.168.3.141").build();
	 Session session = cluster.connect("mykeyspace");
	 System.out.println("connected");


这时候连接报错:Exception in thread "main" com.datastax.driver.core.exceptions.NoHostAvailableException: 
All host(s) tried for query failed (tried: [/192.168.3.141])
google了一下这个问题,但是解释都太对,所以查看了一下源代码;
 
this.clusterName = clusterName == null ? generateClusterName() : clusterName;
	private static String generateClusterName() {
       	 return "cluster" + CLUSTER_ID.incrementAndGet();
   	 }

他这里用的集群的名字默认并不是cassandra给的默认 Test Cluster ,所以在这里设置一下集群的名字,网上有些说需要修改port为9042,这个不对,因为客户端默认就是9042.
Cluster cluster = Cluster.builder().withClusterName("Test Cluster").addContactPoint("192.168.3.141").build();


进行查询users表,并打印相关信息。
Cluster cluster = Cluster.builder().withClusterName("Test Cluster").addContactPoint("192.168.3.141").build();
		Session session = cluster.connect("mykeyspace");
		System.out.println("connected");
		for (Row row : session.execute("SELECT * FROM users")) {
			System.out.println(row.toString());
		}


打印结果:

connected
Row[1745, john, smith]
Row[1744, john, doe]
Row[1746, john, smith2]


与插入数据的一致。


www.htsjk.Com true http://www.htsjk.com/cassandra/32799.html NewsArticle cassandra DATASTAX 客户端纪要,cassandradatastax 本文当作是自己的一个技术备份,如果有不对的地方,请大神不要喷。 cassandra 升级到了2.0.1 ,但是常用的Hector 客户端,到现在只是支持到了...
相关文章
    暂无相关文章
评论暂时关闭