1

我有 hbase 0.94.0。我正在尝试检索所有区域的 StartKey 和 EndKey。

我使用以下代码在 hbase 中获取区域。

MetaScanner ms=new MetaScanner();
System.out.println("Region of .META. "+ms.listAllRegions(config));

它产生了以下输出。

Region of .META. [{NAME => 'Student9,,1364452609604.9955bddb298229d6b9fa749dfa7d6b40.', STARTKEY => '', ENDKEY => '0011000', ENCODED => 9955bddb298229d6b9fa749dfa7d6b40,}, {NAME => 'Student9,0011000,1364452609604.f1766f38ceabbe6400c266f99d1a9a29.', STARTKEY => '0011000', ENDKEY => '0011\x85\x85\x85', ENCODED => f1766f38ceabbe6400c266f99d1a9a29,},

现在我想为.META.表中的每个区域检索 startkey 和 endkey。

我该怎么做?帮助示例代码!

4

2 回答 2

0
Pair<byte[][],byte[][]> pair=table1.getStartEndKeys();
            byte[][] start=pair.getFirst();
            byte[][] end=pair.getSecond();
            for(int c=0;c<start.length;c++)
            {
                    String st_end=new String(start[c]);
                    String en2=new String(end[c]);      
                    System.out.println("StartKey :"+st_end+" "+"End Key :"+en2);
            }
于 2013-04-03T10:39:33.427 回答
0

在 Java 中,

    try (HTable table = new HTable(new JobConf(HBaseConfiguration.create()), TABLE_NAME)) {
        byte[][] keys = table.getStartKeys();
        for (byte[] keyBytes : keys) {
            String key = new String(keyBytes, StandardCharsets.UTF_8);
            // first region does not have start key (is null)
            // last region does not have end key
            if (StringUtils.isNotBlank(key)) {
                System.out.println(key);
            }
        }
    }
于 2015-07-21T19:40:24.177 回答