我有一个关于Hadoop文件拆分和多映射器的一般性问题。我是Hadoop的新手,正在尝试掌握如何设置以获得最佳性能。我的项目目前正在处理的WARC文件是GZIPed。
使用当前InputFileFormat,文件将被发送到一个映射器,并且不会被拆分。我知道这是加密文件的正确行为。在运行作业之前,将解密文件作为中间步骤以允许拆分作业,从而使用更多映射器,是否会对性能产生好处?这有可能吗?拥有更多的映射器是否会产生更多的延迟开销,还是只有一个映射器更好?谢谢你的帮助。
发布于 2016-10-31 04:39:58
尽管WARC文件是gzipped格式的,但它们是可拆分的(参见Best splittable compression for Hadoop input = bz2?),因为每个记录都有自己的deflate块。但是记录偏移量必须事先知道。
但这真的有必要吗?Common Crawl WARC文件的大小约为1 GB,应在最大值范围内正常处理。15分钟考虑到启动map任务的开销,mapper的运行时间是合理的。不过,映射器也可以处理几个WARC文件,但重要的是要对输入的WARC文件列表进行足够的拆分,以便所有节点都在运行任务。在Hadoop上处理单个WARC文件将意味着大量不必要的开销。
https://stackoverflow.com/questions/40326258
复制相似问题