当前位置: 首页 > 知识库问答 >
问题:

Lz4压缩不可拆分

邓夕
2023-03-14

我正在使用lz4压缩并将数据写入hive表,该表有20个文件,每个文件在HDFS上都是15G,并且该表的每个文件名都以lz4结尾,例如,part-m-00000.lz4

当我从这个表中运行select count(1)时,它只启动了20个映射器,这意味着lz4 splittable不能生效。

据说lz4支持针对文本文件的可拆分性,所以我想问一下我应该做什么或其他步骤来实现这一点。

共有1个答案

阙佐
2023-03-14

假设您可以控制数据的压缩方式,那么这个编解码器可能更接近您所需要的,因为它嵌入了一个可拆分层。它设计用于Hadoop。

如果你不能改变格式,并且它被压缩为一个没有跳转表的单一流,那么恐怕没有好的解决方案<默认情况下,CLI将数据分割为4 MB的块,但不提供任何跳转表。跳转表使存档易于按随机顺序读取。没有它,就需要对数据进行流式处理,并分发块以供以后处理。

 类似资料:
  • LZ4算法Linux3.11内核 我可以用这个算法压缩文件而不安装额外的软件包吗?

  • 我试图寻找任何基准,更多关于PHP LZ4压缩的信息,但我找不到太多信息。 我看到了https://github.com/kjdev/php-ext-lz4-但我缺少基准,特别是: 压缩比 去噪/压缩时间 数据消除/压缩内存要求 我将大量数据存储为串行化(ig二进制),我现在使用gzcompress(),不知道是否应该切换到lz4。 谢谢

  • 假设我有一个可重复的模式,比如4个随机字节、4个可预测字节、4个新的随机字节、4个相同的可预测字节的随机数据,等等。这个东西放气能压缩好吗? 4个字节是否太短而不能很好地压缩? deflate是否内置支持这样的交错可压缩/不可压缩数据? 是否有其他常见的压缩格式更好地处理这种模式?

  • 我正在使用内核3.16并尝试使用LZ4压缩内存中的数据。我检查了内核源代码树,找到了压缩源文件/lib/lz4。c和我使用了以下函数: 但我得到了以下错误: 我的源代码: 我试图找到一些关于LZ4如何在内核模块中工作的示例,但什么也没有找到。我不知道是否有人有在内核模块中进行压缩的经验。 谢啦!

  • 我正在用Java构建一个文件浏览器,并在JTrees中列出文件/文件夹。我现在想做的是,当我到达一个压缩文件夹时,我想列出它的内容,但不首先提取它。 如果有人有想法,请分享。

  • LZ4

    LZ4 是一种无损压缩算法,压缩速度为每核心 400 MB/s(0.16 字节/周期)。 它拥有速度极快的解码器,速度为每核心多 GB/s(0.71 字节/周期)。此外,一种称为 LZ4_HC 的高压缩率衍生产品可用于交易可定制的 CPU 时间以实现高压缩率。 一些基准测试 该基准测试使用了 lzbench,在 64 位 Linux 系统(Debian 4.15.17-1)上使用 GCC v7.3