Hi

I need to use the low level java API in order to test bulk ingestion to cassandra. I have already looked at the code in contrib/ bmt_example and contrib/client_only.

When I try and run the following code, I get following exception ; using cassandra-cli I am able to see the "Keyspace1' and column family 'Standard1' .

10/09/07 17:13:30 INFO config.DatabaseDescriptor: DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap Exception in thread "main" java.lang.IllegalArgumentException: Unknown ColumnFamily Standard1 in keyspace Keyspace1 at org .apache .cassandra .config.DatabaseDescriptor.getComparator(DatabaseDescriptor.java:1009) at org .apache.cassandra.db.ColumnFamily.getComparatorFor(ColumnFamily.java: 418)
        at gaia.cu7.cassandra.input.Ingestor.main(Ingestor.java:93)

How can I ensure that my program is connecting to already running cassandra and not starting one in process. My program (taken from client_only/bmt examples) is follows:

System.setProperty("cassandra.config","/user/test/apache- cassandra-0.7.0-beta1/conf/cassandra.yaml"); final AbstractType comp = ColumnFamily.getComparatorFor("Keyspace1", "Standard1", null);
            for (int i = 0; i < 100; i++)
            {
RowMutation change = new RowMutation("Keyspace1", ("key" + i).getBytes()); ColumnPath cp = new ColumnPath("Standard1").setColumn(("colb").getBytes()); change.add(new QueryPath(cp), ("value" + i).getBytes(), new TimestampClock(0));

// don't call change.apply(). The reason is that is makes a static call into Table, which will perform // local storage initialization, which creates local directories.
                // change.apply();

                StorageProxy.mutate(Arrays.asList(change));
                System.out.println("wrote key" + i);
            }



I am using 0.7.0-beta1. Thanks a lot for your reply,

Asif










Reply via email to