我正在使用lz4压缩并将数据写入配置单元表,该表有20个文件,在HDFS上每个文件都是15G,并且该表的每个文件名都以lz4结尾,例如part-m-00000.lz4
。
当我从该表运行select count(1)
时,它仅启动20个映射器,这意味着lz4 splittable
无效。
据说lz4支持针对文本文件的可拆分表,因此我会问我该怎么做或执行其他步骤来启用此功能。
最佳答案
假设您可以控制数据的压缩方式,this codec可能会更接近您的需求,因为它嵌入了可拆分层。它设计用于Hadoop。
如果您不能更改格式,并且将其压缩为没有跳转表的单个流,那么恐怕没有好的解决方案。 lz4
CLI默认情况下会将数据拆分为4 MB的块,但不提供任何跳转表。跳转表使文件易于以随机顺序读取。没有它,就必须流传输数据并分发块以便以后处理。
关于hadoop - Lz4压缩不可拆分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54906265/