java 怎么全表扫描hbase

自己摸索了一下,又看了下hbase的Java api 大致搞出了一个样子,但还是有好多问题

package com.hbase.test;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;

public class Test1 {

    public static void main(String[] args) throws IOException {

        Configuration conf = HBaseConfiguration.create();
        conf.addResource("core-site.xml");
        conf.addResource("hbase-site.xml");
        Connection conn = ConnectionFactory.createConnection();

        Admin admin = conn.getAdmin();

        Table table = conn.getTable(TableName.valueOf("namesp1:student"));
        Scan scan = new Scan();
        ResultScanner results = table.getScanner(scan);

        for(Result result : results){
            System.out.println(Bytes.toString(result.getRow())+"===>");
            System.out.println(result.getValue("f1".getBytes(),"name".getBytes()));
            for(Cell cell : result.listCells()) {
                System.out.println(Bytes.toString(cell.getValueArray()));
                System.out.println("row:"+new String(cell.getRowArray(),"UTF-8"));
                System.out.println("fam:"+new String(cell.getFamilyArray(),"UTF-8"));
                System.out.println("qua:"+Bytes.toString(cell.getQualifierArray()));
                System.out.println("val:"+Bytes.toString(cell.getValueArray()));
                System.out.println("----------------------");
            }
        }
    }
}

然后是结果:

lisi===>
null
lisiclasss��:ruangong
row:lisiclasss��:ruangong
fam:lisiclasss��:ruangong
qua:lisiclasss��:ruangong
val:lisiclasss��:ruangong
----------------------
lisiidsT��1002
row:lisiidsT��1002
fam:lisiidsT��1002
qua:lisiidsT��1002
val:lisiidsT��1002
----------------------
lisinamesT�李四
row:lisinamesT�李四
fam:lisinamesT�李四
qua:lisinamesT�李四
val:lisinamesT�李四
----------------------
zhangsan===>
null
zhangsanclasssdΙxinji
row:zhangsanclasssdΙxinji
fam:zhangsanclasssdΙxinji
qua:zhangsanclasssdΙxinji
val:zhangsanclasssdΙxinji
----------------------
zhangsanidsT��1001
row:zhangsanidsT��1001
fam:zhangsanidsT��1001
qua:zhangsanidsT��1001
val:zhangsanidsT��1001
----------------------
zhangsannamesd�Wzhangsan
row:zhangsannamesd�Wzhangsan
fam:zhangsannamesd�Wzhangsan
qua:zhangsannamesd�Wzhangsan
val:zhangsannamesd�Wzhangsan
----------------------

我想扫描整个表的数据,建的表只有列簇,没有再往下分了。
几个问题:
1.我知道可能循环多了一层,但是我研究了好久都不知道results还能点出什么方法来获取数据。
2.result.getValue()里要填什么参数?列簇和列名吗?但是我这个表里只有列簇,再往下没有了,应该怎么办?
3.cell.getRowArray(),cell.getFamilyArray()等拿到等是什么?为什么几个都一样的?
4.乱码

更新:
又折腾了一下,result.getValue()弄明白了,两个参数填列簇名和列名,没有就填null,返回的是一个byte数组,还得用new string转一下才会显示内容。但是这样写就麻烦了,怎么可以简单点就能都循环到?

https://blog.csdn.net/bbvjx1314/article/details/103594767