首页 > 解决方案 > Java Hadoop 不完整的 HDFS URI,没有主机

问题描述

我正在尝试从 java 应用程序访问 hdfs,但出现错误Incomplete HDFS URI, no host

这是我的core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://localhost:9000</value>
        </property>
</configuration>

这是我的java代码:

class AppTest {

    private static final String HDFS_PATH = "hdfs:localhost:9000";
    private static final String HDFS_USER = "hadoop";
    private static FileSystem fileSystem;
    @BeforeAll
    public static void prepare()
    {
        try {
            Configuration configuration = new Configuration();
            configuration.set("dfs.replication", "1");
            fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration, HDFS_USER);
        } catch (IOException e) {
            e.printStackTrace();
        } catch(InterruptedException e){
            e.printStackTrace();
        } catch(URISyntaxException e){
            e.printStackTrace();
        }
    }
    @Test
    public void mkDir() throws Exception{
        fileSystem.mkdirs(new Path("/hdfs-api/test/"));
    }
    @AfterAll
    public static void destroy(){
        fileSystem = null;
    }
}

它总是抛出错误

java.io.IOException: Incomplete HDFS URI, no host: hdfs:localhost:9000

标签: javahadoophdfs

解决方案


使用netstat -tlpn | grep 9000检查端口是否已启动

将 127.0.0.1 替换为节点真实 IP 地址,例如:hdfs://192.168.10.1:9000


推荐阅读