HBase单元格标记在扫描中返回,但在Get中未返回

HBase单元格标记在扫描中返回,但在Get中未返回,hbase,Hbase,我正在通过HBase客户端读取HBase手机标签 我通过Put.addImmutable(cf、col、version、value、tags)写入标记 我可以通过扫描HBase来验证这些标记是否正确写入: Scan s = new Scan(); s.setFilter(new PageFilter(100)); ResultScanner scanner = table.getScanner(s); Result[] results = scanner.next(100

我正在通过HBase客户端读取HBase手机标签

我通过Put.addImmutable(cf、col、version、value、tags)写入标记

我可以通过扫描HBase来验证这些标记是否正确写入:

Scan s = new Scan();
    s.setFilter(new PageFilter(100));
    ResultScanner scanner = table.getScanner(s);
    Result[] results = scanner.next(100);
    Arrays.stream(results).forEach(r ->  {
        CellScanner cs = r.cellScanner();
        try {
            while(cs.advance()) {
                byte tagValue = ((KeyValue)cs.current()).getTags()
                        .stream()
                        .filter(tag -> tag.getType() == MY_SPECIAL_TAG_TYPE)
                        .findFirst().orElseThrow(() -> new RuntimeException("No tag found"))
                        .getValue();
                System.out.println("tagValue=" + Bytes.toString(tagValue));
            }
        } catch(IOException e) {
        }
    });
我总是得到我在put上设置的正确值

但是,当我为我知道存在的行键执行get时(请参阅下面的代码),并尝试访问标记,我没有得到返回的值

Get g = new Get(Bytes.toBytes("myKey");

    Result r = table.get(g);

    CellScanner cs = r.cellScanner();
        try {
            while(cs.advance()) {
                byte tagValue = ((KeyValue)cs.current()).getTags()
                        .stream()
                        //.filter(tag -> tag.getType() == MY_SPECIAL_TAG_TYPE)
                        .findFirst().orElseThrow(() -> new RuntimeException("No tag found"))
                        .getValue();
                System.out.println("tagValue=" + Bytes.toString(tagValue));
            }
        } catch(IOException e) {
        }
    }

我是否犯了一个错误,或者这是HBase客户端API的一个限制,即不能从get查询返回标记?

发生这种情况是因为HBase单元标记不供客户端使用。当请求用户是超级用户时,它们将返回给客户端。不建议依赖于客户端读取单元格标记。

这仅在使用HBasetsLanguage功能时发生。HBase的实际实例不会出现这种情况。作为超级用户,我如何请求?