从HBase读取数据

时间:2013-05-19 06:35:14

标签: java nosql hbase crud

我是HBase的新手,从表中逐行检索结果的最佳方法是什么?我想阅读表格中的全部数据。我的表有两个列族,比如col1和col2。

4 个答案:

答案 0 :(得分:0)

从Hbase shell,您可以使用扫描命令列出表格中的数据,或获取以检索记录。参考here

答案 1 :(得分:0)

我认为这就是你需要的:通过HBase shell和Java API:http://cook.coredump.me/post/19672191046/hbase-client-example

但是你应该理解hbase shell'scan'非常慢(它没有被缓存)。但它仅用于调试目的。

另一个有用的信息部分在这里:http://hbase.apache.org/book/perf.reading.html 本章适用于从HBase阅读,但有点难以理解,因为它假定了一定程度的熟悉程度并包含更高级的建议。我从一开始就向你推荐本指南。

答案 2 :(得分:0)

使用Hbase的扫描api,您可以指定起始行和结束行,并可以从表中检索数据。

以下是一个例子:

http://eternaltechnology.blogspot.in/2013/05/hbase-scanner-example-scanning.html

答案 3 :(得分:0)

我一直在找这样的东西!

地图功能

public void map(ImmutableBytesWritable row, Result value, Context context) throws InterruptedException, IOException {

            String x1 = new String(value.getValue(Bytes.toBytes("ColumnFamily"), Bytes.toBytes("X1")));
            String x2 = new String(value.getValue(Bytes.toBytes("ColumnFamily"), Bytes.toBytes("X2")));


}

驱动程序文件:

Configuration config2 = new Configuration();
            Job job2 = new Job(config1, "kmeans2");
            //Configuration for job2

            job2.setJarByClass(Converge.class);
            job2.setMapperClass(Converge.Map.class);
            job2.setReducerClass(Converge.Reduce.class);
            job2.setInputFormatClass(TableInputFormat.class);
            job2.setOutputFormatClass(NullOutputFormat.class);
            job2.setOutputKeyClass(Text.class);
            job2.setOutputValueClass(Text.class);
            job2.getConfiguration().set(TableInputFormat.INPUT_TABLE, "tablename");