我在使用hbase(cloudera5.7发行版)时遇到了问题。我将二进制数据(pdf、word、jpeg等)存储在hbase中,并激活新的mob功能(mob文档、mob概念描述)存储数据不是问题。但是,如何从hbase中取出文件(最好使用另存为对话框)?提前谢谢!
z8dt9xmd1#
正如cloudera文档中提到的,mob支持该功能对客户端是透明的。(https://www.cloudera.com/documentation/enterprise/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);
1条答案
按热度按时间z8dt9xmd1#
正如cloudera文档中提到的,mob支持
该功能对客户端是透明的。
(https://www.cloudera.com/documentation/enterprise/5-5-x/topics/admin_hbase_mob.html)
这意味着您可以通过与任何其他列相同的方式获取存储的mob的内容。在java中: