zählen wir können alle Zeilen mit HBASE Shell mit diesem Befehl zählen: count 'table_name', INTERVAL=> 1
oder einfach count 'table_name
.Wie alle Zeilen in Hbase-Tabelle mit Scala
Aber wie geht das mit Scala Programmierung?
zählen wir können alle Zeilen mit HBASE Shell mit diesem Befehl zählen: count 'table_name', INTERVAL=> 1
oder einfach count 'table_name
.Wie alle Zeilen in Hbase-Tabelle mit Scala
Aber wie geht das mit Scala Programmierung?
Obwohl ich mit Java-Client für Hbase getan haben, ich recherchiert und herausgefunden, die unten .. Java Art und Weise Code-Schnipsel:
können Sie verwenden KeyOnlyFilter() nur erhalten Schlüssel der Zeilen . und dann Schleife wie unten ..
for (Result rs = scanner.next(); rs != null; rs = scanner.next()) {
number++;
}
wie oben Sie das unten scala hbase Beispiel verwenden können ..
import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.hbase.client.{HBaseAdmin,HTable,Put,Get}
import org.apache.hadoop.hbase.util.Bytes
val conf = new HBaseConfiguration()
val admin = new HBaseAdmin(conf)
// list the tables
val listtables=admin.listTables()
listtables.foreach(println)
// let's insert some data in 'mytable' and get the row
val table = new HTable(conf, "mytable")
val theput= new Put(Bytes.toBytes("rowkey1"))
theput.add(Bytes.toBytes("ids"),Bytes.toBytes("id1"),Bytes.toBytes("one"))
table.put(theput)
val theget= new Get(Bytes.toBytes("rowkey1"))
val result=table.get(theget)
val value=result.value()
println(Bytes.toString(value))
jedoch als zusätzliche Informationen (und beste Art und Weise als java oder scala) siehe unten
RowCounter
ist ein mapreduce-Job zum Zählen aller Zeilen einer Tabelle. Dies ist ein gutes Dienstprogramm, das als Plausibilitätsprüfung verwendet wird, um sicherzustellen, dass HBase
alle Blöcke einer Tabelle lesen kann, wenn Bedenken hinsichtlich der Metadateninkonsistenz bestehen. Es wird die mapreduce alle in einem einzigen Prozess ausführen, aber es wird schneller ausgeführt, wenn Sie einen MapReduce-Cluster zur Ausnutzung haben.
$ hbase org.apache.hadoop.hbase.mapreduce.RowCounter <tablename>
Usage: RowCounter [options]
<tablename> [
--starttime=[start]
--endtime=[end]
[--range=[startKey],[endKey]]
[<column1> <column2>...]
]
Mit Java-Client können Sie alle Tabellen scannen mit RowKeyOnlyFilter ist wirksam. Auf diese Weise übertragen Sie nur Zeilenschlüssel an Ihren Client-Code, nicht an Daten, so dass es schneller geht. Das ist es, was 'Tabellenname' in der Shell auch tut.
Sie können den Java-Client verwenden –
hier ist ein Beispiel, um das mit Java-Programmierung zu erreichen, https://github.com/selfish/hbase-experiments/blob/master/src/test/java/com/mogujie /mst/hbase/mapreduce/RowCounterTest.java, vielleicht gibt es Ihnen einige Hinweise –
Ich würde argumentieren, dass die Antwort sehr davon abhängt, welchen Client Sie verwenden. Es gibt den Standard-Java-Client, Verbrühung und HPaste speziell für die Verwendung von HBase von Scala. Dann gibt es asynchbase ... Um Ihnen eine Antwort zu geben, wären einige Informationen über den von Ihnen verwendeten Client hilfreich. – juwi