为什么我的输出文件都命名为“ part-r-xxxxx”,即使我没有提到任何reducer类也是如此?

安吉特·凯特里(Ankit khettry)

我正在使用Hadoop 2.6.0的Apache发行版。我知道,对于每个映射器,映射器的输出文件都以“ part-m-xxxxx”格式命名,而对于每个简化器,简化器的输出文件都被命名为“ part-r-xxxxx”。我正在尝试一个简单的Max-Temperature用例,但尚未在Job配置中设置任何reducer类。在这种情况下,输出文件不应该被命名为“ part-m-xxxxx”吗?请在下面找到我的主班:

public class MaxTemperature{

    public static void main(String[] args) throws Exception
    {
        Configuration conf = new Configuration();
        Job job = new Job(conf, "Max Temperture");
        job.setJarByClass(MaxTemperature.class);
        int noOfInputPaths = args.length-1;
        for (int i=0; i<noOfInputPaths; i++){
            System.out.println("Adding Input path: "+args[i]);
            FileInputFormat.addInputPath(job, new Path(args[i]));
        }
        System.out.println("Output path: "+args[args.length - 1]);
        FileOutputFormat.setOutputPath(job, new Path(args[args.length - 1]));

        job.setMapperClass(MaxTemperatureMapper.class);
        //job.setReducerClass(MaxTemperatureReducer.class);
        //job.setNumReduceTasks(3);

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);     

        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);

        System.exit(job.waitForCompletion(true)? 0 : 1);
    }
}
Kishore

如果MapReduce程序员未使用job.setReducerClass设置Reducer类,则将其IdentityReducer.class用作默认值。如果您只想对输入进行排序。例如,身份缩减器可用于实现令人尴尬的并行算法,其中您仅使用映射器执行并行任务,但希望对输出键值对进行排序。输出将是part-r-xxxxx。

如果您设置

job.setNumReduceTasks(0);

在这种情况下,减速器将不会运行,程序的输出将命名为part-m-xxxxx。输出将不排序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我所有的android studio项目都命名为app

来自分类Dev

在类中,我如何将输出文件命名为此类的未来实例的名称

来自分类Dev

为什么hadoop输出文件part-r-00000为空

来自分类Dev

为什么我的cron输出文件名的末尾有\ r?

来自分类Dev

Spark中的part-r-xxxxx文件

来自分类Dev

为什么在我直接将其命名为laravel5时找不到类名

来自分类Dev

为什么将提交按钮命名为“ submit”,我的表单却不提交?

来自分类Dev

为什么ASP.Net MVC将我的“固定”区域重命名为“ _Fixed”

来自分类Dev

Windows为什么将我的库重命名为驱动器号?

来自分类Dev

为什么案例类被命名为“案例”?

来自分类Dev

为什么我的python脚本输出文件为空

来自分类Dev

为什么我没有得到任何输出?

来自分类Dev

为什么我没有得到任何输出

来自分类Dev

为什么我没有得到任何输出

来自分类Dev

如果我们在 java main 方法中将 args[] 命名为 arhs[](或任何其他名称),为什么没有错误?

来自分类Dev

我将Excel工作表重命名为默认的“ Sheet1”后,为什么此VBA代码失败?

来自分类Dev

为什么我的网络接口命名为enp0s25而不是eth0?

来自分类Dev

为什么使用 Nsurl 请求一直告诉我重命名为“init(url)”

来自分类Dev

Hadoop中的part-r-00000和part-m-00000文件有什么区别?

来自分类Dev

是否所有文件夹都命名为“核心”核心转储?

来自分类Dev

我不知道为什么我得到一个空白的输出文件

来自分类Dev

将我的 Laravel 项目命名为 crm 有什么问题吗

来自分类Dev

即使我安装了没有命名为seaborn的模块

来自分类Dev

为什么我的输出文件的大小小于原始文件的大小?

来自分类Dev

我想将目录中的所有文件从* .ts重命名为* .mkv

来自分类Dev

如果我将脚本命名为“ string.py”或“ math.py”,则“导入”操作的行为会有所不同。为什么会这样呢?

来自分类Dev

为什么我的客户没有收到任何字节?

来自分类Dev

为什么Windows上的traceroute命名为tracert-我正在阅读的书声称存在一些历史背景

来自分类Dev

我们如何复制仅命名为哈希格式的文件

Related 相关文章

  1. 1

    为什么我所有的android studio项目都命名为app

  2. 2

    在类中,我如何将输出文件命名为此类的未来实例的名称

  3. 3

    为什么hadoop输出文件part-r-00000为空

  4. 4

    为什么我的cron输出文件名的末尾有\ r?

  5. 5

    Spark中的part-r-xxxxx文件

  6. 6

    为什么在我直接将其命名为laravel5时找不到类名

  7. 7

    为什么将提交按钮命名为“ submit”,我的表单却不提交?

  8. 8

    为什么ASP.Net MVC将我的“固定”区域重命名为“ _Fixed”

  9. 9

    Windows为什么将我的库重命名为驱动器号?

  10. 10

    为什么案例类被命名为“案例”?

  11. 11

    为什么我的python脚本输出文件为空

  12. 12

    为什么我没有得到任何输出?

  13. 13

    为什么我没有得到任何输出

  14. 14

    为什么我没有得到任何输出

  15. 15

    如果我们在 java main 方法中将 args[] 命名为 arhs[](或任何其他名称),为什么没有错误?

  16. 16

    我将Excel工作表重命名为默认的“ Sheet1”后,为什么此VBA代码失败?

  17. 17

    为什么我的网络接口命名为enp0s25而不是eth0?

  18. 18

    为什么使用 Nsurl 请求一直告诉我重命名为“init(url)”

  19. 19

    Hadoop中的part-r-00000和part-m-00000文件有什么区别?

  20. 20

    是否所有文件夹都命名为“核心”核心转储?

  21. 21

    我不知道为什么我得到一个空白的输出文件

  22. 22

    将我的 Laravel 项目命名为 crm 有什么问题吗

  23. 23

    即使我安装了没有命名为seaborn的模块

  24. 24

    为什么我的输出文件的大小小于原始文件的大小?

  25. 25

    我想将目录中的所有文件从* .ts重命名为* .mkv

  26. 26

    如果我将脚本命名为“ string.py”或“ math.py”,则“导入”操作的行为会有所不同。为什么会这样呢?

  27. 27

    为什么我的客户没有收到任何字节?

  28. 28

    为什么Windows上的traceroute命名为tracert-我正在阅读的书声称存在一些历史背景

  29. 29

    我们如何复制仅命名为哈希格式的文件

热门标签

归档