使用Java实现HDFS文件读写,解决报错:java.net.UnknownHostException

首先要确保你的电脑上配置了hadoop环境变量
在windows系统中安装配置hadoop环境变量

错误来源

我想用JAVA实现HDFS文件读写,所以在maven项目中写了如下的测试方法:

@Test
    public void testCopyFromLocalFile() throws URISyntaxException, IOException, InterruptedException {
        //1、创建配置文件
        Configuration conf=new Configuration();
        //2、获取文件系统
        FileSystem fs=FileSystem.get(new URI("hdfs://hadoop01:9000"),conf,"root");
        //3、调用API操作
        fs.copyFromLocalFile(new Path("D:\\sn.txt"),new Path("/hdfs/shell"));
        //4、关闭资源
        fs.close();
    }

然后运行报错:java.net.UnknownHostException:hadoop01
具体显示为下面这一行报错:
在这里插入图片描述

问题分析

已经明确知道了是这一行中的hadoop01无法被java所识别,所以要想办法解释程序中的hadoop01,而hadoop01是我linux虚拟机的hostname。

问题解决

修改C:\Windows\System32\drivers\etc中的hosts文件内容
增加一行:
( 虚拟机IP hostname)
192.168.21.111 hadoop01
使用Java实现HDFS文件读写,解决报错:java.net.UnknownHostException_第1张图片

你可能感兴趣的:(java,hadoop,linux,hdfs)