public static void main(String[] args) throws InterruptedException {
// Add transactional spout
MemoryTransactionalSpout spout = new MemoryTransactionalSpout(values,
new Fields("shortid", "url", "user", "date"), 3);
TransactionalTopologyBuilder builder = new TransactionalTopologyBuilder(
"shorturl-count", "spout", spout, 2);
// Build TupleTableConifg
TupleTableConfig ttConfig = new TupleTableConfig("shorturl", "shortid");
ttConfig.setBatch(false);
ttConfig.addColumn("data", "clicks");
ttConfig.addColumn("daily", "date");
builder.setBolt("hbase-counters", new HBaseCountersBatchBolt(ttConfig), 2)
.fieldsGrouping("spout", new Fields("shortid"));
LocalCluster cluster = new LocalCluster();
Config stormConfig = new Config();
stormConfig.setDebug(true);
stormConfig.setMaxSpoutPending(3);
cluster.submitTopology("hbase-example", stormConfig,
builder.buildTopology());
Thread.sleep(10000);
cluster.shutdown();
}