配置没问题,但通过java api仍然操作不了hdfs的问题。

问题
  • 近来刚入门hadoop,搭建完集群后,新建maven工程通过java api在hdfs上创建一个文件夹,通过如下代码,运行不报错,但一直不能在hdfs上创建,反而该文件夹在windows系统上创建了
package hpc.hdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class TestHdfsClient {

    public static void main(String[] args) throws Exception {

        Configuration conf = new Configuration();
        
        conf.set("fs.defaultFs","hdfs://centos7:9000");

        System.setProperty("HADOOP_USER_NAME","hpc");

        FileSystem fs = FileSystem.get(conf);
        //我想创建Xxxxx文件夹
        fs.mkdirs(new Path("/Xxxxx"));
       
        fs.close();
    }
}

  • 此外,我的core-site.xml配置文件也配置了fs.defaultFS
<name>fs.defaultFS</name>
<value>hdfs://centos7:9000</value>

解决办法:

于是我在fs.close() 前加了一句 System.out.println(fs.getName());,结果显示很让我吃惊,竟然是: file:///,代码没问题,配置也没问题,不应该是本地文件系统的呀。我找了很久,终于解决了,虽然具体原因不明白,好像是与没有配置zookeeper有关。
方法如下:把core-site.xml文件复制到resources下,就能解决问题。

在这里插入图片描述
成功创建
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值