1

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

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

据说lz4支持针对文本文件的拆分,所以我会问我应该做什么或额外的步骤来启用它。

4

1 回答 1

0

假设您可以对数据的压缩方式进行一些控制,则此编解码器可能更接近您的需要,因为它嵌入了一个可拆分层。它是为与 Hadoop 一起使用而设计的。

如果你不能改变格式,并且它被压缩为没有跳转表的单个流,那么恐怕没有好的解决方案。lz4默认情况下,CLI 会将数据拆分为 4 MB 的块,但不提供任何跳转表。跳转表使存档易于以随机顺序阅读。没有它,就必须流式传输数据,并分发块以便以后处理。

于 2019-02-28T18:59:48.313 回答