【问题标题】:How does binary encoding in HBase work?HBase 中的二进制编码如何工作?
【发布时间】:2015-05-18 11:55:17
【问题描述】:

我正在使用 com.twitter.chill.KryoInjection 将微风 SparseVectors 保存到 HBase 以序列化为字节数组,这似乎工作正常。但后来我意识到,在从 HBase 中读取向量后,一些值是不同的/缺失的。 现在我想知道 HBase 如何编码数据以及数据的突变可能出现在哪里(保存/编码/可能压缩数据/读取??)。

我想在保存到 HBase 之前将存储在 HBase 中的向量与相关向量进行比较,看看它们是否相等(那么可能是读取问题),但我遇到了如何做到这一点的问题。向量在 HBase shell 中的表示看起来像

列=d:向量,时间戳=1431936909897,值=\x01\x00breeze.linalg.SparseVector$mcD$s\xF0\x01\x00\x01\x01breeze.collection.mutable.SparseArra\xF9\x01\x1A\ x01\x02[\xC4\x01\x0 E?\xF0\x00\x00\x00\x00\x00\x00?\xC5-\xF2\x15\x85Z:?\xD6,{ci\xA8\x08@\x06P\xE3\x85\xACy'?\xEB \xA2\x09\xAA\xA3\xAD\x19?\xE4M\xCB\x98\xB8\x00f?\xE8\x00\x00\x00\x00\x00\x00@"\xA4Z\ x1C\xAC\x081?\xEB\xB0\xE3\xCD\x9AR&?\xE4\xB7\xF7K`\xDD)?\xEA\xD3\xC0\x06\x14\xEC\xF7?\xF3\x01]\xE8R46 ?\xC45\x03\x97\xE5\x0E\x8D\x0A\x00\x00\x00\x00\x00\x00\x00\x00\x01\x0E\x02\ x0A0~\xB2\x01\xCC\x01\xBA\x02\xD22\xE4a\xDA\xB6\x0A\xD0\x8B&\xC0\xC0)\xDA\xCC\x05\x01\xC0\x84=\x01\x03breeze .storage.Zero$DoubleZero\xA4\x01\x01\x03\x06

如何将其与将向量序列化为文本文件时得到的“正常”字节码进行比较? 有没有人已经有类似的问题并可以提供建议?

【问题讨论】:

    标签: scala encoding hbase kryo scala-breeze


    【解决方案1】:

    HBase 只是将数据存储为您提供给它的字节数组。它不关心它是否是使用 kryo 或任何其他技术创建的。所以问题可能出在您的代码中,而不是在 HBase 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-08
      • 2012-07-25
      • 2017-07-10
      • 2014-01-20
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      • 2011-05-08
      相关资源
      最近更新 更多