我正在 Spark 1.6 应用程序中编写单元测试,并且必须模拟 HDFS。正在使用 MiniDFSCluster https://wiki.apache.org/hadoop/HowToDevelopUnitTests如此处所述。我在当前的 Spark 1.6 代码中没有看到任何使用 MiniDFSCluster 的示例。
最佳答案
下面的代码片段展示了如何设置和使用集群。
val conf = new HdfsConfiguration()
val testDataCluster = new File("/var/path", "root")
conf.set(MiniDFSCluster.HDFS_MINIDFS_BASEDIR, testDataCluster.getAbsolutePath)
conf.setInt("dfs.blocksize", 512)
conf.setInt("dfs.namenode.fs-limits.min-block-size", 512)
val dfs = new MiniDFSCluster.Builder(conf).build()
dfs.waitActive()
val fileSystem: org.apache.hadoop.fs.FileSystem = dfs.getFileSystem
fileSystem.copyFromLocalFile(false, new Path(sourceDir),
new Path(hdfsDir))
您可能需要的一些依赖项是(以下采用 sbt 模块定义格式)
"org.apache.hadoop" % "hadoop-client" % "2.7.2" % "provided",
"org.apache.hadoop" % "hadoop-hdfs" % "2.7.2" % "test",
"org.apache.hadoop" % "hadoop-common" % "2.7.2" % "test",
"org.apache.hadoop" % "hadoop-hdfs" % "2.7.2" % "test" classifier "tests",
"org.apache.hadoop" % "hadoop-common" % "2.7.2" % "test" classifier "tests"
关于apache-spark - Spark 1.6 中的 HDFS 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42047559/