get区域起始键和结束键hbase

fcwjkofz  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(666)

我有hbase 0.94.0。我正在检索所有区域的开始键和结束键。
我使用以下代码来获取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,},

现在我要为中的每个区域检索startkey和endkey .META. table。
我该怎么做?示例代码帮助!

inkz8wg9

inkz8wg91#

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);
            }
u0njafvf

u0njafvf2#

在 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);
            }
        }
    }

相关问题