Ich habe mich auf Is there any command that I can learn the size of a table at Hbase?, aber als normaler Benutzer, ich habe keine Zugriffsberechtigung auf hdfs dfs -du /hbase
Befehl auf /hbase
Verzeichnis. Da ich eine Tabelle in HBase erstellt habe (etwa customer
) und einige 100K-Datensätze eingefügt habe, woher weiß ich die Größe der Tabelle customer
?Befehl, um die Größe einer Tabelle in HBase zu kennen
Antwort
Angenommen, Sie befinden sich in einer typischen Hadoop-Einstellung, können Sie wie jeder Benutzer hadoop-Befehle ausführen.
Als solche sollten Sie in der Lage sein, dies zu tun, als Vorbereitung für Sie System-Datei-Befehle:
HADOOP_USER_NAME=hdfs
Natürlich würden Sie dies mit Vorsicht verwendet werden soll.
Wenn Sie sich in einer gesicherten Umgebung (zum Beispiel mit Kerberos) befinden, wird das natürlich nicht funktionieren.
Zwei mögliche Ansätze, weder großartig. :)
1) Verwenden Sie für einen Java-Entwickler HBaseAdmin, um über ein Dienstprogramm eine Verbindung zum Cluster herzustellen. So etwas wie diese
Collection<ServerName> servers=admin.getClusterStatus().getServers()
for (ServerName serverName: servers) {
ServerLoad load=admin.getClusterStatus().getLoad(serverName);
load.getMemstoreSizeInMB();
load.getStorefileSizeInMB();
}
2) Wenn Sie mehr eines Sysadmin sind, können Sie die JMX-Metriken in jeder Region Server betroffen. So etwas wie
http: // regionserver: regionserverPort/JMX
und Sie können Informationen grep wie
"Namespace_splice_table_1472_region_a0db9d0ef5e7ae4262bde19a096b2f1f_metric_storeCount": 1, "Namespace_splice_table_1472_region_a0db9d0ef5e7ae4262bde19a096b2f1f_metric_storeFileCount": 1, "Namespace_splice_table_1472_region_a0db9d0ef5e7ae4262bde19a096b2f1f_metric_memStoreSize": 408, "Namespace_splice_table_1472_region_a0db9d0ef5e7ae4262bde19a096b2f1f_metric_st oreFileSize ": 18908965,
Wir erstellen unsere Tabellen bei Splice Machine mit einem Namespace-Spleiß und einer Nummer. Also die Tabelle ist Namespace = Spleiß, Tabelle = 1472.
Hoffe das hilft, Prost.
Ich bin in Kerberos-Umgebung und ich kann hdfs dfs -ls/Benutzer//* ausführen. Ich kann auch hbase Shell-Skriptbefehle mit dem Befehl kitit ausführen –
Farooque
@Farooque Wenn Sie keine Berechtigung haben, in das hbase-Verzeichnis zu schauen und die Authentifizierung aktiviert ist, glaube ich nicht, dass Sie die Tabellengröße selbst überprüfen können. Wenn es wichtig ist, sollten Sie einen Administrator bitten, 1. die Tabellengröße für Sie zu prüfen ODER 2. Ihnen (nicht schreibend) die Berechtigung für das hbase-Verzeichnis zu erteilen. 3. Geben Sie (non-write) Erlaubnis zu den Tabellen, die Sie innerhalb des hbase-Verzeichnisses erstellen –
Ich mache READ_EXECUTE hier und die Erlaubnis ist hbase: drwx ------ – Farooque