Hadoop Mini Cluster Mock(MiniDFSCluster)

时间:2018-04-18 08:49:06

标签: hadoop testing mocking sbt hdfs

我需要你对 hadoop-minicluster

的帮助

我正在使用scala(使用sbt),我尝试模拟HDFS的调用。我播放hadoop-minicluster来部署一个小集群并对其进行测试。

然而,当我添加sbt依赖:

libraryDependencies + =" org.apache.hadoop" %" hadoop-minicluster" %" 3.1.0" %测试

未添加来源,我无法导入包 org.apache.hadoop.hdfs.MiniDFSCluster

你知道我怎么解决这个问题吗?

感谢您的回答

2 个答案:

答案 0 :(得分:3)

令人惊讶的是,它不是在hadoop-minicluster中。 尝试 libraryDependencies + =“org.apache.hadoop”%“hadoop-hdfs”%HADOOP_VERSION分类器“测试”

您可能还必须排除某些组件,例如 “org.apache.hadoop”%“hadoop-hdfs”%HADOOP_VERSION classifier“测试”exclude(“javax.servlet”,“servlet-api”)

答案 1 :(得分:1)

非常感谢您的回答。

因此,要获取测试文件和源文件(例如使用DistributedFileSystem),我在我的sbt文件中使用此行:

libraryDependencies + =" org.apache.hadoop" %" hadoop-hdfs" %" 3.1.0" %测试分类器"测试" libraryDependencies + =" org.apache.hadoop" %" hadoop-common" %" 3.1.0" %测试分类器"测试"

需要Hadoop-common才能编译。

但是,当我运行测试时,我还有另一个问题:

An exception or error caused a run to abort: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z 

java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO $ Windows.access0(Ljava / lang / String; I)Z

我播种了关于HADOOP_HOME的路径,但我做到了,但没有任何反应......