Since 0.7 beta 2 or something, locators have differents names.
In conf/cassandra.yaml :
Out of the box, Cassandra provides
#     * org.apache.cassandra.locator.SimpleStrategy
#     * org.apache.cassandra.locator.NetworkTopologyStrategy
#     * org.apache.cassandra.locator.OldNetworkTopologyStrategy

Good luck

Nico008

On 10/10/2010 20:38, Andre wrote:

Yeah that certainly seems to be the way forward, thanks.

Made adjustments but I'm still coming up short, the set strategy class method has no javadoc and I'm getting a

InvalidRequestException(why:org.apache.cassandra.locator.RackUnawareStrategy)

Am I doing this right, in the old config xml file you specified the full path to the class, has that changed too?

*public* *static* *void* main(String[] args) *throws* InvalidRequestException, TException {

TFramedTransport transport = *new* TFramedTransport(*new* TSocket("localhost", 9160));

Cassandra.Client client = *new* Cassandra.Client(*new* TBinaryProtocol(transport));

            transport.open();

            KsDef ks = *new* KsDef();

            CfDef cf = *new* CfDef();

            cf.setColumn_type("Standard");

            cf.setName("Standard1");

            cf.setKeyspace("Keyspace1");

            List<CfDef> cl = *new* ArrayList<CfDef>();

            cl.add(cf);

            ks.setReplication_factor(1);

ks.setStrategy_class("org.apache.cassandra.locator.RackUnawareStrategy");

            ks.setName("Keyspace1");

            ks.setCf_defs(cl);

            client.system_add_keyspace(ks);

      }

*From:* Nicolas Mathieu [mailto:nico...@gmail.com]
*Sent:* 10 October 2010 18:35
*To:* user@cassandra.apache.org
*Subject:* Re: Getting Cassandra 0.7 beta2 to work - creating keyspaces

Try this :
TFramedTranspor transport = new TFramedTransport(new TSocket(host, port));
Cassandra.Client cassandraConn = new Cassandra.Client(new TBinaryProtocol(transport));
transport.open();

It is now Framed transport ;-)

Hope that helps

Nico008

On 10/10/2010 18:40, Andre wrote:

Hi everyone.

I'm having a bit of a problem getting started with 0.7

I had 0.6.4 working and I want to start checking out 0.7, I can't figure out how to create keyspaces to even get started.

Can anyone also give me a little info on secondary index's, their purpose and use

The following is the java code I was using

*public* *class* Client {

*private* *static* TTransport /tr/ = *null*;

*private* *static* Cassandra.Client /client/ = *null*;

*public* *static* Client /Cassandra/ = *new* Client();

*public* Client() {

/setupConnection/();

      }

*private* *static* *void* setupConnection() {

*try* {

/tr/ = *new* TSocket("localhost", 9160);

                  TProtocol proto = *new* TBinaryProtocol(/tr/);

/client/ = *new* Cassandra.Client(proto);

/tr/.open();

            } *catch* (TException ex) {

Logger./getLogger/(Client.*class*.getName()).log(Level./ALL/, *null*, ex);

            }

      }

*public* *static* *void* main(String[] args) *throws* InvalidRequestException, TException {

            KsDef ks = *new* KsDef();

            CfDef cf = *new* CfDef();

            cf.setColumn_type("Standard");

            cf.setName("Standard1");

            cf.setKeyspace("Keyspace1");

            List<CfDef> cl = *new* ArrayList<CfDef>();

            cl.add(cf);

            ks.setReplication_factor(1);

ks.setStrategy_class("org.apache.cassandra.locator.RackUnawareStrategy");

            ks.setName("Keyspace1");

            ks.setCf_defs(cl);

            Client./Cassandra/./_client_/.system_add_keyspace(ks);

      }

}

But of course it throws an exception:

Exception in thread "main" _org.apache.thrift.transport.TTransportException_

at org.apache.thrift.transport.TIOStreamTransport.read(_TIOStreamTransport.java:132_)

at org.apache.thrift.transport.TTransport.readAll(_TTransport.java:84_)

at org.apache.thrift.protocol.TBinaryProtocol.readAll(_TBinaryProtocol.java:369_)

at org.apache.thrift.protocol.TBinaryProtocol.readI32(_TBinaryProtocol.java:295_)

at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(_TBinaryProtocol.java:202_)

at org.apache.cassandra.thrift.Cassandra$Client.recv_system_add_keyspace(_Cassandra.java:1454_)

at org.apache.cassandra.thrift.Cassandra$Client.system_add_keyspace(_Cassandra.java:1439_)

      at org.shotaz.Cassandra.Client.main(_Client.java:58_)

I've seen http://wiki.apache.org/cassandra/LiveSchemaUpdates and http://wiki.apache.org/cassandra/API (CFdef and KSDef section)

But I still can't suss it any help/pointers would be much appreciated.

P.S I also used Hector with 0.6.4 so examples using either thrift or Hector should get me going.

thanks


Reply via email to