我創建了一個java應用程序來讀取HBase中的數據。我檢查了link1link2link3和link4。即使我的表中有數據,程序也會返回null。HBase讀取數據返回null
HBase的外殼:
hbase(main):009:0> get 'login','1'
COLUMN CELL
password: password timestamp=1456588594424, value=hpassword
username: username timestamp=1456588582413, value=husername
2 row(s) in 0.0120 seconds
代碼:
Configuration config = HBaseConfiguration.create();
HTable table = new HTable(config, "login");
Get g = new Get(Bytes.toBytes("row1"));
Result r = table.get(g);
byte [] value = r.getValue(Bytes.toBytes("username"),Bytes.toBytes("username"));
byte [] value1 = r.getValue(Bytes.toBytes("password"),Bytes.toBytes("password"));
String valueStr = Bytes.toString(value);
String valueStr1 = Bytes.toString(value1);
System.out.println("username: "+ valueStr+"\npassword: "+valueStr1);
Scan s = new Scan();
s.addColumn(Bytes.toBytes("username"), Bytes.toBytes("username"));
s.addColumn(Bytes.toBytes("password"), Bytes.toBytes("password"));
ResultScanner scanner = table.getScanner(s);
try
{
for (Result rnext = scanner.next(); rnext != null; rnext = scanner.next())
{
System.out.println("Found row : " + rnext);
}
}finally{
scanner.close();
}
輸出:
username: null
password: null
我失去了一些東西,或者我需要在代碼編輯的地方?
此外,我需要將其實現到Java Play Framework中。你有什麼想法嗎?
在此先感謝。
目前還不清楚哪些列族用於存儲數據。你使用「用戶名」列和列家庭,它似乎是錯誤的 – AdamSkywalker
謝謝你的幫助。我改變了它們,並將Bytes.toBytes(「row1」))「row1」更改爲「1」。 –
爲什麼你使用掃描並在同一時間? –