从HBase中获取二进制数据



我正在使用HBase(Cloudera 5.7分发)并有一个问题。我将二进制数据(pdf,word,jpeg,...)存储在HBase中,并激活了新的MOB函数(MOB文档,Mob-Concept的描述)

存储数据不是问题。但是,如何从HBase中获取文件(以对话为主)?

预先感谢您!

,如Cloudera文档中有关MOB支持的文档

该功能与客户端透明。

(https://www.cloudera.com/documentation/enterprise/5-5-5-x/topics/admin_hbase_mob.html)

这意味着您可以以与其他任何列的方式获取存储的MOB的内容。在Java中:

        String namespace = "nmsp";
        String tblName = "MOB_TEST";
        byte[] rowKey = "MOB_1".getBytes();
        byte[] columnFamily = "D".getBytes();
        byte[] qualifier = "MOB".getBytes();
        Get g = new Get(rowKey);
        g.addColumn(columnFamily, qualifier);
        Configuration cfg = HBaseConfiguration.create();
        Connection con = ConnectionFactory.createConnection(cfg);
        Table t = con.getTable(TableName.valueOf(namespace, tblName));
        Result r = t.get(g);
        byte[] mobContent = r.getValue(columnFamily, qualifier);
        Path outPath = FileSystems.getDefault()
                .getPath("C:/testBigFile_fromHBase.xml");
        Files.write(outPath, mobContent);

相关内容

  • 没有找到相关文章

最新更新