Я создал таблицу HBase через API Java и добавил данные через Put. Я также могу прочитать данные на Java с соответствующим Get. В документации по HBase говорится, что значение ячейки также может быть прочитано с использованием запроса GET, например. в браузере, см. documentation.HBase: запрос GET для данных строки с отметкой времени
Следующая запрос работает для меня, которая возвращает всю строку:
http://my_hbase_url:12345/dm-table/exampleRow/family:html?v=1
Результатом является XML и выглядит следующим образом:
<CellSet>
<Row key="ZXhhbXBsZVJvdw==">
<Cell column="ZmFtaWx5Omh0bWw=" timestamp="1466667016879">PGh0bWw+Li4uTXkgSFRNTC4uLjwvaHRtbD4=</Cell>
</Row>
</CellSet>
Если вы посмотрите на метку времени оно 1466667016879
, но когда я называю
http://my_hbase_url:12345/dm-table/exampleRow/family:html/1466667016879
Я получаю not found
ре Sult! Кроме того, код Java работает и дает мне эту метку времени:
HTable table = new HTable(config, TABLE_NAME.getBytes());
Get g = new Get("exampleRow".getBytes());
g.setTimeStamp(1466667016879L);
Result r = table.get(g);
System.out.println("Timestamp: " + r.rawCells()[0].getTimestamp());
byte[] value = r.getValue(CF_DEFAULT.getBytes(), "html".getBytes());
String valueStr = new String(value);
System.out.println("GET: " + valueStr);
Печатается:
Timestamp: 1466667016879
GET: <html>...My HTML...</html>
Так метка времени существует, но запрос GET по HTTP не будет работать с отметкой времени, может кто-то помочь?
Я изучил его, но я не могу использовать 'family: html'. Это только для HBase 2.0? – Whitefret
«familiy» и «html» столбца являются только из моего примера таблицы, я создал таблицу с этой структурой. Я использую HDP 2.4 с HBase 1.1.2 –
Я тупой:/... Я получаю, чтобы загрузить файл вместо того, чтобы иметь хороший ответ Xml. WIll попытаться заглянуть в него снова – Whitefret