hbaseシェルを使用してすべての行を数えることができます。count 'table_name', INTERVAL=> 1
または単にcount 'table_name
です。Scalaを使用してHbaseテーブルのすべての行を数える方法
しかし、どのようにプログラミングスカラ座を使用してこれを行うには?私はHBaseのためのJavaクライアントで行われているが
hbaseシェルを使用してすべての行を数えることができます。count 'table_name', INTERVAL=> 1
または単にcount 'table_name
です。Scalaを使用してHbaseテーブルのすべての行を数える方法
しかし、どのようにプログラミングスカラ座を使用してこれを行うには?私はHBaseのためのJavaクライアントで行われているが
は、私が研究して見つけた以下.. Javaの道のコードスニペット:
あなたはKeyOnlyFilterは()行のキーのみを取得するために使用することができます。その後、ループ
付加情報としてしかし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))
(および最良の方法よりも..あなたは以下のScalaのHBaseの例を使用することができ、上記のような
for (Result rs = scanner.next(); rs != null; rs = scanner.next()) { number++; }
..以下のようなjavaまたはscala)を参照してください。
は、テーブルのすべての行を数えるmapreduceジョブです。これは、メタデータの矛盾の任意の懸念がある場合はHBase
は、テーブルのすべてのブロックを読み取ることができることを保証するために、健全性チェックとして使用するための良いユーティリティです。これは、すべて単一のプロセスでのMapReduceを実行しますが、あなたはそれを悪用するための場所でのMapReduceのクラスタを持っている場合、それはより速く実行されます。
$ hbase org.apache.hadoop.hbase.mapreduce.RowCounter <tablename>
Usage: RowCounter [options]
<tablename> [
--starttime=[start]
--endtime=[end]
[--range=[startKey],[endKey]]
[<column1> <column2>...]
]
Javaクライアントでは、RowKeyOnlyFilterですべてのテーブルをスキャンできます。このようにすると、データではなくクライアントコードにのみ行キーを転送するので、処理速度が向上します。これは、 'tablename'がシェルでもカウントするものです。
Javaクライアント –
を使用すると、Javaプログラミング、https://github.com/sel-fish/hbase-experiments/blob/master/src/test/java/com/mogujieを使用してこれを実現することができます。 /mst/hbase/mapreduce/RowCounterTest.java、おそらくそれはあなたにいくつかのヒントを与えるでしょう –
私は、答えはあなたが使用するクライアントに多く依存すると主張します。 標準のJavaクライアントは、具体的にスカラ座からのHBaseを使用するための火傷とHPasteがあります。それからasynchbase ...あなたに答えを与えるために、あなたが使っているクライアントに関するいくつかの情報が役に立つでしょう。 – juwi