2016-05-25 6 views
1

Ich habe einige Probleme mit HBase REST API durchgelaufen.HBase REST API - Datenproblem, Browserproblem, scheint nicht zu funktionieren

Lassen Sie mich zuerst einen kleinen Hintergrund geben: Ich baute eine HBase-Tabelle in meinem Unternehmen CDH-Cluster. Der Zeilenschlüssel ist "|" . Spaltenfamilie ist "d" und der Spaltenqualifizierer ist das Datum, das ebenfalls eine Zeichenfolge ist (z. B. 2012-01-27). Um anderen interessierten Personen im Unternehmen den Zugriff auf die Tabellendaten zu ermöglichen, habe ich eine Django-API erstellt, die sehr gut funktioniert. Jemand in meinem Team hat vorgeschlagen, dass Hbase mit einer integrierten API ausgestattet ist, und ich könnte sie direkt verwenden, um auf die Daten zuzugreifen. Ich lese die Online-HBase-Dokumentation und in der Tat sieht es so aus, als gäbe es schon etwas von der Stange, das mit HBase geliefert wird. Aber ich war nicht erfolgreich damit und deshalb suche ich hier nach Hilfe. Hier

ist eine Liste von Fragen, die ich durch bin mit:

  1. Chrome Browser Im Chrome-Browser, die ich in der folgenden URL eingegeben: http: // < IP-Adresse>: 20550/Namespace: Tabellenname/# 00003 | 313001098/d Ich erwartete, dass die Daten für den angegebenen Zeilenschlüssel im Browser angezeigt werden, aber stattdessen wird eine HTML-Datei heruntergeladen, die nur Daten für einen Spaltenqualifizierer enthält Informationen darüber haben, zu welchem ​​Spaltenqualifizierer die Daten gehören.

  2. Curl Ich habe das gleiche mit curl Befehl in Unix-Shell. curl -i http: // < IP-Adresse>: 20550/Namespace: Tabellenname /% 2300003% 7C313001098/d Bitte beachten Sie, dass% 23 eine Kodierung für # und% 7C eine Kodierung für | ist (Rohr). Der obige Befehl gibt mir nur die Daten für eine Spalte Qualifier.

Ich doppelt überprüft meine Daten mit HBase Shell den folgenden Befehl:

get 'namespace:tablename', '#00003|313001098' 

und ich die Daten aus mehreren Spalten Qualifier erhalten. Daher kann ich bestätigen, dass mir entweder etwas fehlt oder die integrierte HBase-API nicht dafür gebaut ist, die Dinge zu tun, die ich versuche zu tun.

Vielen Dank im Voraus.

Antwort

1

Sie müssen die genaue Spalte angeben, die Sie möchten. Scheint so, als ob die Rest-API es nicht erlaubt, mehr als 1 Spalte zu holen.

Wenn Sie auf die Tabelle 14 unter diesem Link finden: - http://hbase.apache.org/book.html#_rest, würden Sie sehen, dass folgende Endpunkte eine get-Operation mit Hbase REST-API auszuführen ausgesetzt sind: -

1)/Tabelle/Zeile/Spalte: Qualifizierer/Zeitstempel

2)/table/Zeile/Spalte: Qualifier

3)/table/Zeile/Spalte:? Qualifier/v = number_of_versions

Alle diese erfordern eine Säule: Qualifier

Ihre Anfrage muss das Format sein: -

http: // < IP-Adresse>: 20550/namespace: Tabellenname/# 00003 | 313001098/d: 20160202

Verwandte Themen