Как построить топологию Storm Trident, которая будет сохранять кортежи в HBase

Я хочу построить топологию трезубца, которая будет получать кортежи из Kafka, группировать их по одному полю и сохранять целые сгруппированные кортежи в HBase. Причина группировки заключается в том, что операции размещения HBase выполняются быстрее с несколькими объектами размещения по сравнению с размещением одного объекта, я хочу сгруппировать объекты Put по одному полю и вставить все эти объекты Put в один вызов API HBase.

Я написал следующий код, но не уверен, где мне написать код, который преобразует все кортежи в объекты типа "Put" HBase и сохраняет все эти объекты Put в HBase.

OpaqueTridentKafkaSpout kafkaTridentSpout = new OpaqueTridentKafkaSpout(spoutConfig);
TridentTopology topology = new TridentTopology();
topology.newStream("stream", kafkaTridentSpout)
                             .groupBy(new Fields("pointId"))
                             .toStream();
topology.build();

Кто-нибудь может мне помочь, пожалуйста!


person Shekhar    schedule 22.09.2015    source источник
comment
Возможно, поможет storm-hbase: github.com/apache/storm/tree/ master/external/storm-hbase   -  person Matthias J. Sax    schedule 22.09.2015


Ответы (1)


У Storm есть болты и носики. Носики слушают источники, а болты находятся с другой стороны, работая параллельно и перемещая данные к месту назначения. В вашем случае, возможно, носик должен слушать kafka, получать данные в болте, а болт должен писать в Hbase.

person Ramzy    schedule 23.09.2015
comment
У Storm Trident нет болтов. Вместо этого у него есть функции, фильтры и т. д. - person Shekhar; 24.09.2015