当前位置:  开发笔记 > 运维 > 正文

Hadoop:如何对FileSystem进行单元测试

如何解决《Hadoop:如何对FileSystem进行单元测试》经验,为你挑选了3个好方法。

我想运行单元测试,但我需要一个org.apache.hadoop.fs.FileSystem实例.是否有任何模拟或任何其他解决方案来创建FileSystem?



1> Alexander To..:

如果您正在使用hadoop 2.0.0及更高版本 - 请考虑使用hadoop-minicluster


    org.apache.hadoop
    hadoop-minicluster
    2.5.0
    test

有了它,您可以在本地计算机上创建临时hdfs,并在其上运行测试.setUp方法可能如下所示:

baseDir = Files.createTempDirectory("test_hdfs").toFile().getAbsoluteFile();
Configuration conf = new Configuration();
conf.set(MiniDFSCluster.HDFS_MINIDFS_BASEDIR, baseDir.getAbsolutePath());
MiniDFSCluster.Builder builder = new MiniDFSCluster.Builder(conf);
hdfsCluster = builder.build();

String hdfsURI = "hdfs://localhost:"+ hdfsCluster.getNameNodePort() + "/";
DistributedFileSystem fileSystem = hdfsCluster.getFileSystem();

在tearDown方法中,您应该关闭mini hdfs集群,并删除临时目录.

hdfsCluster.shutdown();
FileUtil.fullyDelete(baseDir);



2> Arnon Rotem-..:

看看hadoop测试罐


    org.apache.hadoop
    hadoop-test
    0.20.205.0

它已被归类为设置MiniDFSCluster和MiniMRCluster,因此您可以在没有hadoop的情况下进行测试



3> IceBox13..:

为什么不使用像Mockito或PowerMock这样的模拟框架来模拟与FileSystem的交互?您的单元测试不应该依赖于实际的FileSystem,而应该只是在与FileSystem交互时验证代码中的行为.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有