scala - MiniDFSCluster:无法访问自行创建目录的权限

标签 scala hadoop testing hdfs

我想测试一下我的代码,唤起org.apache.hadoop.hdfs.MiniDFSCluster类示例。但是,在我举一个例子的时候,我收到一条错误消息,通知我进程不会访问某些文件。我遵循了堆栈跟踪,在调试过程中我可以理解,我无法访问名为“name1”,“name2”的文件夹,这些文件夹是MiniDFSCluster在实例化过程中实际上在基本目录中创建的。

我正在尝试运行一个Scala testSuite测试文件,该文件包含从Intellij IDEA 2019.2 Windows 7中进行的类调用。
一段时间之前,我遇到了与Hadoop Mini Cluster Mock (MiniDFSCluster)中描述的问题相同的问题,但修复了该问题并面对了最后一个用户留下的问题。
我看到还有更多用户面临相同的问题,但无法提取正确的解决方案:error using miniDFSCluster on windows
返回给我的堆栈跟踪与MiniDFSCluster UnsatisfiedLinkError org.apache.hadoop.io.nativeio.NativeIO$Windows.access0非常相似

我也找到了一些指南,建议只在本地修复引发异常的方法,但这似乎很尴尬。 https://www.cs.helsinki.fi/u/jilu/paper/hadoop_on_win.pdf

这是我的测试:

val HADOOP_HOME="C:\\Local\\hadoop-common-2.2.0-bin-master"
val conf = new Configuration()
conf.set(MiniDFSCluster.HDFS_MINIDFS_BASEDIR, HADOOP_HOME)
System.setProperty("hadoop.home.dir", HADOOP_HOME)

val builder = new Builder(conf)
builder.build()

结果我得到了以下堆栈跟踪:
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)
at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:557)
at org.apache.hadoop.fs.FileUtil.canWrite(FileUtil.java:996)
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:490)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:308)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:202)

我希望使用此工具来测试我的代码,因此,请提供任何信息,我们将不胜感激。

如果您需要帮助,请尝试在Windows环境中实例化一个类,并告诉我它将返回什么。

最佳答案

最后,只需将%HADOOP_HOME%/ bin目录添加到%Path%环境变量中即可解决,就是这样...

关于scala - MiniDFSCluster:无法访问自行创建目录的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58172858/

相关文章:

用于将 Int 限制为范围的 Scala 类型

hadoop - 自定义Hadoop Mapper

c# - 除了单元测试和持续集成决策之外还有哪些测试?

unix - 信号量的简单测试

php - Laravel 中的单元测试 : Error when setting the Currently Authenticated User

postgresql - Stream、Option 上的模式匹配和创建元组

scala - 带有 ClassTags/TypeTags 的模式匹配函数签名

scala - O(1) 从 mutable.Map 到 immutable.Map 的转换?

java - Hadoop 3.0如何做CopyMerge?

python - pyspark 1.3.0 将数据框保存到 HIVE 表中