在大数据处理领域,Hadoop 是当之无愧的核心工具之一,而其 Java API 为开发者提供了强大的功能来操作 HDFS(Hadoop Distributed File System)。本文将详细介绍如何使用 Hadoop Java API 在 HDFS 上进行文件的写入、读取以及本地文件上传操作,并涵盖项目打包部署到 Hadoop 集群的完整流程,同时对相关问题进行深入探讨。
一、HDFS 写文件操作
(一)实现思路剖析
首先,需创建一个普通 Java 项目并定义 Main Class。接着,利用 Configuration 对象来配置 Hadoop 集群的相关信息,其中关键的一步是通过 set 方法将 fs.defaultFS 设置为目标 Hadoop 集群的地址,例如 “hdfs://803425 - hadoop01”。随后,借助 FileSystem.get (...) 方法获取 FileSystem 对象,这是后续操作的核心入口。再调用 FileSystem 对象的 create (...) 方法创建一个 FSDataOutputStream 对象,该对象如同一条数据管道,负责将数据精准写入 HDFS 文件。最后,利用 FSDataOutputStream 对象的 writeUTF (...) 或 write (...) 方法将准备好的数据写入文件,并使用 hdfs - cat 命令验证写入结果。
(二)演示代码解读
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class WriteToHdfsDemo {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
conf.set("fs.defaultFs", "hdfs://803425-hadoop01");
// 准备测试数据
List<String> data = new ArrayList<>();
data.add("hello hdfs\n");
data.add("i love 1z\n");
data.add("我来自广西");