【发布时间】:2019-03-01 03:35:06
【问题描述】:
我正在使用lz4压缩并将数据写入hive表,该表有20个文件,在HDFS上每个15G,并且该表的每个文件名都以lz4结尾,例如part-m-00000.lz4。
当我从这个表运行 select count(1) 时,它只启动了 20 个映射器,这意味着 lz4 splittable 不会生效。
据说lz4支持对文本文件进行拆分,所以我想问我应该怎么做或者额外的步骤来启用它。
【问题讨论】:
我正在使用lz4压缩并将数据写入hive表,该表有20个文件,在HDFS上每个15G,并且该表的每个文件名都以lz4结尾,例如part-m-00000.lz4。
当我从这个表运行 select count(1) 时,它只启动了 20 个映射器,这意味着 lz4 splittable 不会生效。
据说lz4支持对文本文件进行拆分,所以我想问我应该怎么做或者额外的步骤来启用它。
【问题讨论】:
假设您可以控制数据的压缩方式,this codec 可能更接近您的需要,因为它嵌入了一个可拆分层。它专为与 Hadoop 一起使用而设计。
如果你不能改变格式,并且它被压缩为没有跳转表的单个流,那么恐怕没有好的解决方案。 lz4 CLI 默认情况下会将数据拆分为 4 MB 的块,但不提供任何跳转表。跳转表使存档易于以随机顺序阅读。没有它,就必须流式传输数据,并分发块以便以后处理。
【讨论】: