Hbase計數器異常Attempted to increment field that isn

破棉襖發表於2015-06-18

該異常為要自增的欄位不為數字型別,所以呼叫incrementColumnValue方法會報錯

首次put時指定為long欄位:
put.add(Bytes.toBytes("cf"),Bytes.toBytes("count"), Bytes.toBytes(1l));     //1後邊有個l

再次自增:
table.incrementColumnValue("rowkey1".getBytes(),"cf".getBytes(),"count".getBytes(),1);


查詢:
      byte[] b;
       long temp;  
       long res;  

       for (Result r : rs) {  
           if(new String(r.getRow()).equals("rowkey1")){
           for (KeyValue keyValue : r.raw()) {
           
             b =keyValue.getValue();
             temp = 0;  
             res = 0;  
             for (int i=0;i<8;i++) {  
                 res <<= 8;  
                 temp = b[i] & 0xff;  
                 res |= temp;  
             }  
             System.out.println(res);
           }  
         }
       }  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29754888/viewspace-1703713/,如需轉載,請註明出處,否則將追究法律責任。

相關文章