java - Hadoop处理WARC文件

标签 java hadoop mapreduce elastic-map-reduce common-crawl

我对Hadoop文件拆分和多个映射器有一个一般性问题。我是Hadoop的新手,正在尝试了解如何设置以获得最佳性能。我的项目当前正在处理GZIP格式的WARC文件。

使用当前的InputFileFormat,文件将发送到一个映射器,并且不会拆分。我了解这是加密文件的正确行为。在运行作业之前将文件解密作为中间步骤是否会对性能产生好处,以允许拆分作业并因此使用更多的映射器?
那有可能吗?拥有更多的映射器会导致更多的延迟开销,还是拥有一个映射器会更好?谢谢你的帮助。

最佳答案

尽管WARC文件已压缩,但它们是可拆分的(参见Best splittable compression for Hadoop input = bz2?),因为每个记录都有其自己的deflate块。但是记录偏移量必须事先知道。

但这真的有必要吗?通用抓取WARC文件的大小均为1 GB,应在不超过上限的情况下正常处理。 15分钟。考虑到启动映射任务的开销,这是映射器运行的合理时间。例如,一个映射器还可以处理一些WARC文件,但是重要的是要对输入的WARC文件列表进行足够的分割,以便所有节点都在运行任务。在Hadoop上处理单个WARC文件将意味着很多不必要的开销。

关于java - Hadoop处理WARC文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40326258/

相关文章:

java - 如何避免使用 jsp 从数据库打印重复的名称?

java - 由于没有互联网连接而无法打开 url 时的 android 事件

java - 自定义标题栏中的问题(android)

java - 空字段验证在 Struts 2 中不起作用

hadoop - 在配置单元 0.9 中创建索引

java - 在 HBase 列族上应用过滤器

algorithm - 在 5 台机器集群中以全分布式模式运行 Hadoop 比在单台机器上花费更多时间

hadoop - 调试 Apache Slider 包?

java - 名称节点不工作

Hadoop Map Reduce 引用静态对象