实现背景:
消费Kafka数据写入HBase时,单条处理效率太低。需要批量插入hbase,这里自定义时间窗口countWindowAll 实现100条hbase插入一次Hbase
前面我就不写了 直接上核心代码
/*每10秒一个处理窗口*/
DataStream<List<Put>> putList = filterData.countWindowAll(Constants.windowCount).apply(new AllWindowFunction<String, List<Put>, GlobalWindow>() {
@Override
public void apply(GlobalWindow window, Iterable<String> message, Collector<List<Put>> out) throws Exception {
List<Put> putList=new ArrayList<Put>();
for (String value : message)
{
String rowKey=value.replace("::","_");
Put put = new Put(Bytes.toBytes(rowKey.toString()));
String[] column=value.split("::