具有PutRequest的多列族

时间:2012-10-09 22:30:50

标签: java hadoop hbase flume

我正在编写自定义HbaseSink以与Flume-NG 1.3.0一起使用,并且需要在同一行中执行具有多个列族的org.hbase.async.PutRequest。我没有看到构造函数或类似于Put.add(columnFamily,columnName,value)的任何内容。有人可以说明我应该如何做这件事吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

我也尝试找到此问题的解决方案,但找不到任何参考。所以这就是我在我的应用程序中所做的

`

public void addRecord(String tableName, String rowKey, String family, HashMap<String, String> hash) {
        try {
            HTable table = new HTable(conf, tableName);
            Put put = new Put(Bytes.toBytes(rowKey));

            Iterator<String> it = hash.keySet().iterator();
            while (it.hasNext()) {
                String key = it.next();
                String val = hash.get(key);
                put.add(Bytes.toBytes(family), Bytes.toBytes(key), Bytes.toBytes(val));
            }
            table.put(put);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

`

这里,HashMap哈希包含列名及其值。