Я создал приложение Java для чтения данных из HBase. Я проверил link1link2link3 и link4. Программа возвращает null, даже в моей таблице есть данные.HBase read data returns 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
Am я что-то отсутствует, или мне нужно где-то изменить в коде?
Кроме того, мне нужно реализовать это в Java Play Framework. У вас есть представление об этом?
Заранее спасибо.
Непонятно, какое семейство колонок используется для хранения данных. Вы используете «имя пользователя» для семейства столбцов и столбцов, это похоже на неправильное. – AdamSkywalker
Благодарим за помощь. Я изменил их, а также изменил Bytes.toBytes («row1»)) «row1» на «1». –
Почему вы используете сканирование и получаете в то же время? –