在idea中maven 使用@Test 出错
配置完junit之后依旧报错 此时mave代码如下
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
原因是因为junit版本比较低 为3.8.1
之后换成了
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
运行成功
在idea中运行Hadoop的注意点
客户端去操作 HDFS 时,是有一个用户身份的。默认情况下,HDFS 客户端 API 会从
JVM 中获取一个参数来作为自己的用户身份:-DHADOOP_USER_NAME=whzy,whzy
为用户名称。
Run–>edit Configurations
也可以在代码中指定
@Test
public void getClient2() throws URISyntaxException, IOException, InterruptedException {
Configuration configuration = new Configuration();
//获取hdfs的客户端
FileSystem fileSystem = FileSystem.get(new URI("hdfs://master:9000"), configuration, "whzy");
//创建一个目录
fileSystem.mkdirs(new Path("/whzyB102"));
fileSystem.close();
System.out.println("over---");
}
Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executablenull\bin\winutils.exe in the Hadoop binaries.
出现这个的原因是因为 Hadoop中缺少winutils
附上winutils的百度网盘链接、
链接:https://pan.baidu.com/s/1v50YwJWxrIMkSewZ71Z8pA
提取码:bsqw
解压之后
进入etc目录进入Hadoop目录 找到hadoop-env.cmd这个文件
选择编辑
set JAVA_HOME=F:\jdk1.8.0_201
找到这一行 修改为自己JAVA_HOME路径
之后把Hadoop安装目录里面的etc、bin替换成winutils里面的 etc、bin文件
之后
再cmd里面输入
hadoop -version
出现下图的即完成 之后到idea里面跑下程序 错误解除