当前位置: 首页 > 知识库问答 >
问题:

Hadoop map reduce整个文件输入格式

徐淳
2023-03-14

我正在尝试使用hadoop map reduce,但不是在映射器中一次映射每一行,而是一次映射整个文件。

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.InputFormat;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.TextInputFormat;
import org.apache.hadoop.mapred.TextOutputFormat;

import forma.WholeFileInputFormat;

/*
 * Driver
 * The Driver class is responsible of creating the job and commiting it.
 */
public class Driver {
    public static void main(String[] args) throws Exception {
        JobConf conf = new JobConf(Driver.class);
        conf.setJobName("Get minimun for each month");

        conf.setOutputKeyClass(IntWritable.class);
        conf.setOutputValueClass(IntWritable.class);

        conf.setMapperClass(Map.class);
        conf.setCombinerClass(Reduce.class);
        conf.setReducerClass(Reduce.class);

        // previous it was 
        // conf.setInputFormat(TextInputFormat.class);
        // And it was changed it to :
        conf.setInputFormat(WholeFileInputFormat.class);

        conf.setOutputFormat(TextOutputFormat.class);

        FileInputFormat.setInputPaths(conf,new Path("input"));
        FileOutputFormat.setOutputPath(conf,new Path("output"));

        System.out.println("Starting Job...");
        JobClient.runJob(conf);
        System.out.println("Job Done!");
    }

}

共有1个答案

慕朝明
2023-03-14

因此,p1将包含f1-f10的url,p2将包含f11-f20的url,以此类推。

然后,这些新文件p1到p10被用作映射器的输入。因此,处理文件p1的映射器m1将一次一个地打开文件f1到f10,并全部处理它。

 类似资料:
  • 问题内容: 我正在开始开发新软件,最终将需要一些强大且可扩展的文件IO。有很多格式。XML,JSON,INI等。但是,总会有优缺点,所以我想我会要求社区提供一些意见。 以下是一些基本要求: 格式是“标准” …如果不需要,我不想重新发明轮子。它不一定是正式的IEEE标准,但是您可以通过Google并以新用户的身份获得一些信息,它可能具有vi之外的一些支持工具(编辑器)。(尽管软件用户通常会精通计算机

  • 所以我正在和Yii2一起工作,对它来说是相当新的。我正在使用Kartik文件上传,并试图将代码转换为多个文件。但它只保存了第一个文件。 我已经删除了验证,因为这也是失败的,但一旦我知道所有其他的都在工作,我会重新添加。 型号: 控制器: 查看:

  • 我是Hadoop的新手,但这是我上个月的一个学习项目。 为了使这一点足够模糊,以便对其他人有用,让我先抛出基本目标……假设: < li >显然,您有一个大型数据集,包含数百万个基本ASCII文本文件。 < ul > < li >每个文件都是一个“记录” e. g. /user/hduser/data/customer1/YYYY-MM-DD, /user/hduser/data/customer2

  • 问题内容: 我是Hadoop的新手,正在尝试弄清楚它是如何工作的。至于练习,我应该实现类似于WordCount- Example的东西。任务是读入多个文件,执行WordCount并为每个输入文件编写一个输出文件。Hadoop使用组合器,将map- part的输出改编为reducer的输入,然后写入一个输出文件(我猜每个正在运行的实例)。我想知道是否可以为每个输入文件写入一个输出文件(因此保留inp

  • 目录表 文件 使用文件 储存器 储存与取储存 概括 在很多时候,你会想要让你的程序与用户(可能是你自己)交互。你会从用户那里得到输入,然后打印一些结果。我们可以分别使用raw_input和print语句来完成这些功能。对于输出,你也可以使用多种多样的str(字符串)类。例如,你能够使用rjust方法来得到一个按一定宽度右对齐的字符串。利用help(str)获得更多详情。 另一个常用的输入/输出类型

  • 我使用下面的代码来限制用户上传文件格式,即在上传对话框中,他将只能看到那些特定的文件。 type="file"接受=". pdf,. jpg,. jpeg,. jpe,. jfif,. tif,. tiff,. doc,. docx,. xls,. xlsx,. csv" 它在Chrome、Mozilla和IE9及以上版本中运行良好。但这在IE8和Safari中不起作用。 如何在IE8和Safar