gpt4 book ai didi

hadoop - HBase 键值压缩?

转载 作者:可可西里 更新时间:2023-11-01 16:24:14 28 4
gpt4 key购买 nike

感谢您对我的问题感兴趣。在开始之前,我想让您知道我是 Hadoop 和 HBase 的新手。到目前为止,我发现 Hadoop 非常有趣,并希望在未来做出更多贡献。

我主要对提高 HBase 的性能感兴趣。为此,我修改了 HBase 的 /io/hfile/Hfile.java 中的 Writer 方法,使其进行高速缓冲数据组装,然后直接写入Hadoop,以便稍后可以由 HBase 加载它。

现在,我正试图想出一种压缩键值对的方法,以便节省带宽。我做了很多研究来弄清楚怎么做;然后意识到HBase有内置的压缩​​库。

我目前正在查看 SequenceFile (1); setCompressMapOutput (2)(已弃用);和类压缩(3)。我还找到了一个 tutorial在 Apache 的 MapReduce 上。

谁能解释一下“SequenceFile”是什么,我该如何实现这些压缩库和算法?这些不同的类和文档让我很困惑。

非常感谢您的帮助。

--

超链接:

(1): hadoop.apache.org/common/docs/current/api/org/apache/hadoop/io/SequenceFile.html

(2): hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapred/JobConf.html#setCompressMapOutput%28boolean%29

(3): www.apache.org/dist/hbase/docs/apidocs/org/apache/hadoop/hbase/io/hfile/Compression.html

最佳答案

SequenceFile 是一种在 Hadoop 中实现的键/值对文件格式。尽管 SequenceFile 在 HBase 中用于存储预写日志,但 SequenceFile 的 block 压缩实现不是。

Compression 类是 Hadoop 压缩框架的一部分,因此用于 HBase 的 HFile block 压缩。

HBase 已经内置了以下类型的压缩:

  • 磁盘上的 HFile block 压缩。它使用Hadoop的编解码框架,支持LZO、GZIP、SNAPPY等压缩算法。这种类型的压缩仅适用于存储在磁盘上的 HFile block ,因为需要解压缩整个 block 以检索键/值对。
  • 缓存内 key 压缩(在 HBase 术语中称为“数据 block 编码”)—参见 HBASE-4218 .实现的编码算法包括各种类型的前缀和增量编码,并且在撰写本文时正在实现 trie 编码 (HBASE-4676)。数据 block 编码算法利用 HFile block 中已排序键之间的冗余,只存储连续键之间的差异。这些算法目前不处理值,因此主要用于小值(相对于 key 大小)的情况,例如柜台。由于这些数据 block 编码算法的轻量级特性,可以高效地仅解码 block 的必要部分以检索请求的 key 或前进到下一个 key 。这就是为什么这些编码算法有利于提高缓存效率的原因。然而,在一些真实世界的数据集上,delta 编码还允许在 LZO 压缩之上节省高达 50%(例如,应用 delta 编码然后 LZO 与仅 LZO),从而也显着节省磁盘空间。
  • HBASE-4608 中实现了一种基于自定义字典的预写日志压缩方法。 .注意:虽然在HBase中SequenceFile用于预写日志存储,但是SequenceFile内置的 block 压缩不能用于预写日志,因为缓冲键/值对进行 block 压缩会导致数据丢失。

HBase RPC 压缩正在进行中。正如您提到的,压缩在客户端和 HBase 之间传递的键/值对可以节省带宽并提高 HBase 性能。这已在 Facebook 的 HBase 版本 0.89-fb ( HBASE-5355 ) 中实现,但尚未移植到官方 Apache HBase 主干。 HBase 0.89-fb 支持的 RPC 压缩算法与 Hadoop 压缩框架支持的算法相同(例如 GZIP 和 LZO)。

setCompressedMapOutput 方法是一种 map-reduce 配置方法,与 HBase 压缩无关。

关于hadoop - HBase 键值压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417339/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com