【问题标题】:Connecting to cassandra column families using thrift api java使用 thrift api java 连接到 cassandra 列族
【发布时间】:2014-03-25 03:24:15
【问题描述】:

我有一个 cassandra 单节点运行,其下的键空间和列族很少。我想使用 JAVA - THRIFT API 与他们联系。我成功地描述了 cluster_name/cluster_version/etc。我想连接到它下面的键空间和列族

我当前的java代码如下:

import org.apache.cassandra.thrift.*;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.*;
import org.apache.thrift.transport.*;

import java.io.UnsupportedEncodingException;
import java.lang.*;
import java.nio.ByteBuffer;

public class ShowKeyspaces {

    public static void main(String args[]) throws TException, InvalidRequestException,     UnavailableException, UnsupportedEncodingException, NotFoundException {

    TTransport tr = new TFramedTransport(new TSocket("localhost", 9160));
    TProtocol proto = new TBinaryProtocol(tr);
    tr.open();
    Cassandra.Client client = new Cassandra.Client(proto);

    System.out.println("Version : "+client.describe_version());
    System.out.println("cluster name : "+client.describe_cluster_name());

    for ( KsDef keyspace: client.describe_keyspaces() )
    {
        System.out.println("keyspace " +keyspace);
    }

    client.set_keyspace("demodb");

    tr.close();
}
}

关于锄头的任何建议我可以进一步访问列族吗?

【问题讨论】:

  • 强烈建议使用其中一种 java 客户端库,例如 DataStax CQL 驱动程序、Hector 或 Astyanax。它们提供了许多必要的功能(故障转移、重试、连接池)并且使用起来更简单。
  • 我同意理查德的观点。我们使用的是 Hector,最近我们迁移到了 datastax java-driver(github.com/datastax/java-driver)
  • 好的.. 非常感谢。我也开始使用 datastax。

标签: cassandra thrift


【解决方案1】:

请注意,AFAIK,使用 CQL3 创建的表不会在 Thrift 报告的模式中返回。 https://github.com/thobbs/phpcassa/issues/139

【讨论】:

    猜你喜欢
    • 2011-02-17
    • 2014-09-20
    • 2013-10-19
    • 2012-08-15
    • 2017-01-05
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多