在hdfs中创建新文件夹时出错

fjaof16o  于 2021-05-30  发布在  Hadoop
关注(0)|答案(0)|浏览(304)

我的hadoop-1.2.1配置是:


***core-site.xml***

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/dsk/hadoop/tmp-storage</value>
    </property>
</configuration>

***hdfs-site.xml***

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

我想使用hadoop文件系统api来为hdfs提供新的方向。所以我在代码里写道:

@Test
    public void testDirectory() throws Exception {

        Configuration configuration = new Configuration();
        FileSystem hdfs = HDFSUtils.getFileSystem(configuration);
        Path path = new Path("/test_dir");
        boolean isSuccess = hdfs.mkdirs(path);
        System.out.println("mkdir   test_dir" + (isSuccess ? " success" : " failure"));
    }

我的 class HDFSUtils 是:

public static FileSystem getFileSystem(Configuration conf) {

        FileSystem hdfs = null;
        try {

            hdfs = FileSystem.get(conf);
            return hdfs;

        } catch (Exception e) {
            e.printStackTrace();
        }
        return hdfs;
    }

我希望我的hdfs层次结构如下:

但我有 mkdir test_dir failure 当我用junit测试的时候。
我的工作ide是eclipse conf 文件夹二 xml 已包含的文件

在如何使用文件系统api操作hdfs上的文件方面,我仍然有一些问题。起初我用 URL 方法和它的工作。

String fileUrl = "hdfs://localhost:9000/firstSQL.sql";

但当我将其更改为hdfs文件系统api时,我找不到我的文件:

Configuration conf = new Configuration();
    FileSystem hdfs = HDFSUtils.getFileSystem(conf);
    Path path = new Path("/firstSQL.sql");

故障痕迹是 java.io.FileNotFoundException: File /firstSQL.sql does not exist. 但我真的有 firstSQL.sql 在hdfs中。

我对hdfs上文件的真实路径感到困惑。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题