我是hadoop新手,正在尝试处理wikipedia转储。它是一个6.7 GB的gzip压缩xml文件。我读到hadoop支持gzip压缩文件,但只能由单个作业上的映射器处理,因为只有一个映射器可以解压缩它。这似乎对处理过程施加了限制。有没有别的选择?比如将xml文件解压缩和拆分成多个块,然后用gzip重新压缩它们。
我从http://researchcomputing.blogspot.com/2008/04/hadoop-and-compressed-files.html上读到有关hadoop gzip的内容。
谢谢你的帮助。
发布于 2012-12-25 08:24:38
这是对HDFS最大的误解之一。
是的,压缩为gzip文件的文件不能被MapReduce拆分,但这并不意味着GZip作为编解码器在HDFS中没有价值,也不能被拆分。
作为编解码器,GZip可以与RCFiles、序列文件、Arvo文件以及更多文件格式一起使用。当Gzip编解码器在这些可拆分的格式中使用时,您可以从Gzip加上可拆分的组件中获得巨大的压缩和相当好的速度。
发布于 2011-04-12 23:34:46
由于编解码器的限制,无法以任何方式对GZIP文件进行分区。6.7 to真的不是很大,所以只需在一台机器上解压它(只需不到一个小时),然后将XML复制到HDFS。然后,您可以在Hadoop中处理Wikipedia XML。
Cloud9包含一个WikipediaPageInputFormat类,您可以使用它来读取Hadoop中的XML。
发布于 2013-10-11 09:13:22
为什么不解压缩而使用Splittable LZ压缩呢?
http://blog.cloudera.com/blog/2009/11/hadoop-at-twitter-part-1-splittable-lzo-compression/
https://stackoverflow.com/questions/5630245
复制相似问题