java - 将base64编码的字符串存储在HBase中

标签 java mongodb base64 hbase cloudera

我有一个非常具体的要求,即在 Hbase 列中存储 PDF 数据。数据源是Mongo DB,从那里读取base64编码的数据,我需要将其批量上传到Hbase表。

我意识到在base64编码的字符串中有很多“\n”字符,它将整个字符串分成几个部分。不确定是否是因为这个,但是当我按原样存储字符串时,使用 put :

 put.add(Bytes.toBytes(ColFamilyName), Bytes.toBytes(columnName), Bytes.toBytes(data.replaceAll("\n","").toString()));

它仅存储整个编码字符串的第一行。例如:

如果实际内容是这样的: “JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDEu ” + “MSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMS4xKQovQ3JlYXRpb25EYXRlIChEOjIw\n”+ “MTUwODIyMTIxMjM1KzAzJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0\n”+

它仅存储第一行: JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDEu

在专栏中。即使在尝试手动删除“\n”之后,它也是相同的输出。

有人可以指导我正确的方向吗?

最佳答案

目前我也在研究Base64编码。根据我的理解,你应该尝试使用 org.apache.hadoop.hbase.util.Base64.encodeBytes(byte[] source, int option) 方法其中 DONT_BREAK_LINES可以作为一个选项。 请告诉我这是否正常。

关于java - 将base64编码的字符串存储在HBase中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33279422/

相关文章:

java - 内存不足错误: unable to create new native thread while using Executor

java - 上传图片缩略图到服务器,无需上传整张图片

MongoDB 在不同类型但相同内容的字段上执行 $lookup

javascript - 如何运行我从 github 导入的这个 Node 应用程序?

python - 如何将base64字符串转换为图像?

java - GUI 事件未一致触发

java - 使用android手机闲置时如何设置闹钟?

javascript - 在 Meteor 中删除一个 Mongo 数据库集合

Delphi 7 - 将 Base64 字符串解码为字节数组

java - DatatypeConverter 是线程安全的吗?