MapReducer如何添加多个输入路径

该博客介绍如何在Hadoop MapReduce中使用MultipleInputs类来处理多个输入路径。通过示例代码展示了如何添加不同路径,并指定不同的InputFormat和Mapper类,以实现对多个数据源的并行处理。
摘要由CSDN通过智能技术生成

通常我们直接使用FileInputFormat,但是使用多了我们就会发现,它无法满足我们所有的需求,因为它只能看路径加载,那么多路径怎么办呢,下面我给大家准备的例子就可以帮到大家

    public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
        Configuration cfg = new Configuration();
        //获取到任务
        Job job = Job.getInstance(cfg);
        job.setJarByClass(SumDriver.class);
        //对输入输出参数设置
        // Text, IntWritable

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

        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);
        //设置map reduce类
        job.setMapperClass(DeleteAginMapper.class);
        job.setReducerClass(DeleteAginReducer.class);

        /**
         * 添加多个路径使用MultipleInputs.addInputPath
         * 该方法支持参数为job 路径 inputformat实现类
         * 或者
         * job 路径 inputformat实现类 mapper类
         */
        MultipleInputs.addInputPath(job, new Path("D:\\a\\suminput"),FileInputFormat.class);
        MultipleInputs.addInputPath(job, new Path("D:\\a\\suminput"),FileInputFormat.class,DeleteAginMapper.class);

        //设置输入输出路径
        //FileInputFormat.setInputPaths(job, new Path("D:\\a\\suminput"));
        FileOutputFormat.setOutputPath(job, new Path("D:\\a\\sumoutput"));
        boolean b = job.waitForCompletion(true);
        System.exit(b == true ? 0 : -1);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值