文件夹与文件的创建

在 Hadoop 中,文件夹与文件的创建使用 Hadoop 的 HDFS 命令行工具或者通过编程方式来完成。下面分别介绍这两种方式:

使用 HDFS 命令行工具创建文件夹与文件

1. 创建文件夹:
使用 hdfs dfs -mkdir 命令可以创建一个或多个文件夹。例如,要创建一个名为 /myfolder 的文件夹,可以执行以下命令:

hdfs dfs -mkdir /myfolder
Shell

2. 创建文件:
使用 hdfs dfs -touchz 命令可以创建一个空文件。例如,要在 /myfolder 文件夹下创建一个名为 myfile 的文件,可以执行以下命令:
hdfs dfs -touchz /myfolder/myfile
Shell

使用编程方式创建文件夹与文件

1. 创建文件夹:
通过 Hadoop 的 Java API,可以使用 FileSystem 的 mkdirs 方法来创建文件夹。例如,以下代码演示了如何使用 Java 创建一个名为 /myfolder 的文件夹:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.net.URI;

public class CreateFolder {
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(URI.create("hdfs://localhost:9000"), conf);
        Path folderPath = new Path("/myfolder");
        fs.mkdirs(folderPath);
        fs.close();
    }
}
Java

2. 创建文件:
使用 Java 可以通过 FileSystem 的 create 方法创建文件。例如,以下代码演示了如何使用 Java 在 /myfolder 文件夹下创建一个名为 myfile 的文件:
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.BufferedOutputStream;
import java.io.OutputStream;
import java.net.URI;

public class CreateFile {
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(URI.create("hdfs://localhost:9000"), conf);
        Path filePath = new Path("/myfolder/myfile");
        OutputStream out = new BufferedOutputStream(fs.create(filePath));
        out.close();
        fs.close();
    }
}
Java

文件夹与文件的删除

在 Hadoop 中,文件夹与文件的删除同样可以使用 HDFS 命令行工具或者编程方式来完成:

1. 使用 HDFS 命令行工具删除文件夹与文件:
使用 hdfs dfs -rm 命令可以删除文件夹或文件。例如,要删除 /myfolder 文件夹及其包含的所有文件和文件夹,可以执行以下命令:

hdfs dfs -rm -r /myfolder
Shell

2. 使用编程方式删除文件夹与文件:
通过 Hadoop 的 Java API,可以使用 FileSystem 的 delete 方法来删除文件夹或文件。例如,以下代码演示了如何使用 Java 删除 /myfolder 文件夹及其包含的所有文件和文件夹:
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.net.URI;

public class DeleteFolder {
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(URI.create("hdfs://localhost:9000"), conf);
        Path folderPath = new Path("/myfolder");
        fs.delete(folderPath, true);
        fs.close();
    }
}
Java