2012-10-09 89 views
0

我正在編寫用於Flume-NG 1.3.0的自定義HbaseSink,並且需要在同一行中使用多個列族執行org.hbase.async.PutRequest。我沒有看到構造函數或任何類似於Put.add(columnFamily,columnName,value)的東西。有人會對我應該如何去做這件事情有所啓發嗎?提前致謝!帶PutRequest的多列家庭

+0

我目前的想法是把它分成兩個請求......只是想知道是否有更好的方法。 – BZapper

回答

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的哈希值包含列名和它的值。