如何对自定义的RecordReader和InputFormat类进行单元测试?

 海边拾贝壳女孩_182 发布于 2023-02-12 22:32

我已经开发了一种map-reduce程序。我写了习俗RecordReaderInputFormat课程。

我正在使用mapper和reducer MR Unit并对其Mockito进行单元测试。

我想知道如何对定制RecordReaderInputFormat类进行单元测试?测试这些类的最优选方法是什么?

1 个回答
  • 感谢user7610

    答案中示例代码的经过编译和某种程度上的测试

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.mapreduce.InputFormat;
    import org.apache.hadoop.mapreduce.RecordReader;
    import org.apache.hadoop.mapreduce.TaskAttemptContext;
    import org.apache.hadoop.mapreduce.TaskAttemptID;
    import org.apache.hadoop.mapreduce.lib.input.FileSplit;
    import org.apache.hadoop.mapreduce.task.TaskAttemptContextImpl;
    import org.apache.hadoop.util.ReflectionUtils;
    import java.io.File;
    
    Configuration conf = new Configuration(false);
    conf.set("fs.default.name", "file:///");
    
    File testFile = new File("path/to/file");
    Path path = new Path(testFile.getAbsoluteFile().toURI());
    FileSplit split = new FileSplit(path, 0, testFile.length(), null);
    
    InputFormat inputFormat = ReflectionUtils.newInstance(MyInputFormat.class, conf);
    TaskAttemptContext context = new TaskAttemptContextImpl(conf, new TaskAttemptID());
    RecordReader reader = inputFormat.createRecordReader(split, context);
    
    reader.initialize(split, context);
    

    2023-02-12 22:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有