【问题标题】:Small files in Hadoop vs Shuffle Time - TunningHadoop 中的小文件与随机播放时间 - 调优
【发布时间】:2015-04-17 01:03:43
【问题描述】:

在处理这么多小文件时,减少和调整随机播放时间的更好方法是什么?

由于其他一些限制+要求,我无法减少小文件的数量,我知道处理小文件的问题。但我想知道这里还有哪些其他选项可以减少给定 MapReduce 作业的随机播放时间?

对于单个 MapReduce 作业,我得到如下内容:

Average Map Time    33sec
Average Reduce Time 10sec
Average Shuffle Time    1hrs, 10mins, 18sec
Average Merge Time  2sec 

我想知道是否有其他方法可以尝试减少此随机播放时间?

对于上述数据,我的映射器编号为:14778

【问题讨论】:

    标签: hadoop mapreduce hdfs bigdata hadoop-yarn


    【解决方案1】:

    如果您有多个小文件,您可以使用所有这些小文件,并通过在驱动程序中使用 MultipleInputs 格式将它们提交给一个映射器。如下所示:

    MultipleInputs.addInputPath(job,new Path(args[0]),TextInputFormat.class,CounterMapper.class);
    MultipleInputs.addInputPath(job,new Path(args[1]),TextInputFormat.class,CountertwoMapper.class);
    

    您还可以实现自定义比较器以减少 shuffle 的负载。

    【讨论】:

    • 我遇到的问题是,每个文件都是特定格式的二进制文件,所以我需要把每个文件分开处理。让我再解释一下: 输入:/staging/2015/04/17/a.abc /staging/2015/04/17/b.abc /staging/2015/04/17/c.abc 输出:/parsed/ 2015/04/17/a.parsed /parsed/2015/04/17/b.parsed /parsed/2015/04/17/b.parsed 所以每个扩展名为 .abc 的文件都需要被解析并输出到另一个位置可读格式 (tsv)。关于自定义比较器,您能否解释一下它如何有助于减少随机播放时间?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    • 2016-11-16
    相关资源
    最近更新 更多