我在hdfs系统中有一个文件夹,其中包含使用snappy编解码器压缩的文本文件。
通常,在hadoop流作业中读取gzip压缩文件时,解压缩会自动进行。但是,使用snappy压缩数据时不会发生这种情况,我无法处理数据。
如何读取这些文件并在hadoop流媒体中处理它们?
非常感谢。
更新:
如果我使用命令 hadoop fs -text file
它起作用了。问题只发生在使用hadoop流媒体时,数据在传递到python脚本之前没有解压缩。
我在hdfs系统中有一个文件夹,其中包含使用snappy编解码器压缩的文本文件。
通常,在hadoop流作业中读取gzip压缩文件时,解压缩会自动进行。但是,使用snappy压缩数据时不会发生这种情况,我无法处理数据。
如何读取这些文件并在hadoop流媒体中处理它们?
非常感谢。
更新:
如果我使用命令 hadoop fs -text file
它起作用了。问题只发生在使用hadoop流媒体时,数据在传递到python脚本之前没有解压缩。
2条答案
按热度按时间ss2ws0br1#
我想我已经找到了这个问题的答案。如果有人能证实这一点就太好了。
浏览cloudera博客。我发现这篇文章解释了snappy编解码器。可以看出:
需要注意的一点是,snappy打算与容器格式一起使用,比如序列文件或avro数据文件,而不是直接在纯文本上使用,因为后者是不可拆分的,不能使用mapreduce并行处理。
因此,可以使用
hadoop fs -text
但在hadoop流作业(mapreduce)中没有。n3schb8v2#
您是否在中配置了snappy编解码器
core-site
,例如: