我使用lz4压缩并将数据写入一个配置单元表,这个表有20个文件,每个文件在hdfs上是15g,这个表的每个文件名都以lz4结尾,例如, part-m-00000.lz4 .当我跑的时候 select count(1) 从这个表中,它只启动了20个Map器,这意味着 lz4 splittable 不会生效。据说lz4支持对文本文件进行拆分,所以我想问一下我应该做些什么或者其他的步骤来实现这一点。
part-m-00000.lz4
select count(1)
lz4 splittable
ztmd8pv51#
假设您可以控制数据的压缩方式,这个编解码器可能更接近您的需要,因为它嵌入了一个可拆分层。它是为使用hadoop而设计的。如果你不能改变格式,它被压缩成一个没有跳转表的单一流,那么恐怕没有好的解决方案。 lz4 默认情况下,cli会将数据拆分为4MB的块,但不提供任何跳转表。跳转表使归档文件易于随机读取。如果没有它,就需要流式传输数据,并分发块以便进行后续处理。
lz4
1条答案
按热度按时间ztmd8pv51#
假设您可以控制数据的压缩方式,这个编解码器可能更接近您的需要,因为它嵌入了一个可拆分层。它是为使用hadoop而设计的。
如果你不能改变格式,它被压缩成一个没有跳转表的单一流,那么恐怕没有好的解决方案。
lz4
默认情况下,cli会将数据拆分为4MB的块,但不提供任何跳转表。跳转表使归档文件易于随机读取。如果没有它,就需要流式传输数据,并分发块以便进行后续处理。