@Override public void close() throws IOException { if (mb != null && !mb.isEmpty()) { try { OperationResult<Void> result = mb.execute(); } catch (ConnectionException e) { e.printStackTrace(); // To change body of catch statement use File | Settings | File // Templates. } } context.shutdown(); }
@Override public void map( LongWritable key, Text value, OutputCollector<NullWritable, NullWritable> collector, Reporter reporter) throws IOException { if (value.getLength() == 0) return; byte[] raw = value.getBytes(); Map<String, Object> msg = mapper.readValue(raw, Map.class); String rowId = createRowId(msg); // System.out.println("rowId:" + rowId.toString()); if (rowId == null) { // TODO ... Error Handler return; } if (mb == null) { mb = ks.prepareMutationBatch(); } ColumnListMutation<String> c = mb.withRow(cf, rowId); c.putColumn("raw", value.toString(), null); if (storeAttirbute) { for (String k : msg.keySet()) { if (k.startsWith("__")) continue; Object v = msg.get(k); if (v == null) continue; if (v.equals("")) continue; c.putColumn(k.toLowerCase(), v.toString(), null); } } try { if (mb.getRowCount() > 300) { OperationResult<Void> result = mb.execute(); mb = null; } } catch (ConnectionException e) { e.printStackTrace(); // To change body of catch statement use File | Settings | File // Templates. mb = null; } }