Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for 
change notification.

The "ScribeToCassandra" page has been changed by mck.
http://wiki.apache.org/cassandra/ScribeToCassandra

--------------------------------------------------

New page:
Getting Scribe to write to Cassandra can be very easy by just implementing a 
custom scribe server.
Here's a super simple example written in java and using Hector.
It uses a column family according to the LogEntry's category, and puts the 
payload directly into a column name "scribePayload".
{{{
class ScribeToCassandraService implements com.facebook.scribe.scribe.Iface {

    private static final String CLUSTER_NAME = "myCluster";
    private static final String HOST_PORT = "localhost:9160";
    private static final String KEYSPACE = "keyspace1";
    private static final String COLUMN = "scribePayload";

    ...
    public ResultCode Log(final List<LogEntry> logEntries) throws TException {

        Cluster cluster = HFactory.getOrCreateCluster(CLUSTER_NAME, HOST_PORT);
        Mutator<UUID> mutator = 
HFactory.createMutator(HFactory.createKeyspace(KEYSPACE, cluster), 
UUIDSerializer.get());
        for (LogEntry logEntry : logEntries) {

            try{
                String payload = logEntry.getMessage();
                String category = msg.getCategory();

                HColumn<String,String> column = HFactory.createColumn(
                        COLUMN,
                        payload,
                        StringSerializer.get(),
                        StringSerializer.get());

                UUID uuid = 
UUID.fromString(UUIDGenerator.getInstance().generateTimeBasedUUID().toString());
                mutator.addInsertion(uuid, category, column);


            }catch(Exception je){
                // example catch code
                LOG.error("invalid LogEntry\n"
                        + "category=" + logEntry.getCategory()
                        + "\nmessage is\n" + logEntry.getMessage() + "\n",
                        je);
            }
        }
        mutator.execute();

        return ResultCode.OK;
    }
    ...
}
}}}

Reply via email to