本文主要介绍了 HADOOP HDFS JAVA API 对HDFS中的文件操作,如:创建文件,将文件上传到HDFS,从HDFS下载文件到本地,HDFS文件删除等
话不多说,上代码:
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; /** * HADOOP HDFS 工具类 * * @author * @date 2013-4-13 */ public class HdsfFileUtil { /** * 删除HDFS文件 * * @param path * 删除文件路径 * @throws IOException * IO异常 */ public static void deleteHdfsFile(String path) throws IOException { // 加载配置文件 Configuration conf = new Configuration(); conf.addResource("conf/core-site.xml"); // 获取要删除的文件 Path delefPath = new Path(path); FileSystem hdfs = delefPath.getFileSystem(conf); boolean isDeleted = false; // 检查文件是否存在,若存在,递归删除 if (hdfs.exists(delefPath)) { isDeleted = hdfs.delete(delefPath, true); // 递归删除 } else { isDeleted = false; System.out.println("文件不存在:删除失败"); } System.out.println("Delete?" + isDeleted); } /** * 将本地文件上传至HDFS * * @param local * 本地路径 * @param hdfs * hdfs路径 * @throws IOException * IO异常 */ public static void uploadToHdfs(String local, String hdfs) throws IOException { // 加载配置文件 Configuration config = new Configuration(); config.addResource("conf/core-site.xml"); // 获取HDFS文件系统 FileSystem fs = FileSystem.get(URI.create(hdfs), config); // 读取本地文件 FileInputStream fis = new FileInputStream(new File(local)); OutputStream os = fs.create(new Path(hdfs)); // 复制 IOUtils.copyBytes(fis, os, 4096, true); os.close(); fis.close(); System.out.println("拷贝完成..."); } /** * 读取HDFS文件 * * @param fileName * 源文件路径 * @param dest * 写入文件路径 * @throws IOException */ public static void readFromHdfs(String fileName, String dest) throws IOException { // 加载配置文件 Configuration conf = new Configuration(); conf.addResource("conf/core-site.xml"); // 获取HDFS文件系统 FileSystem fs = FileSystem.get(URI.create(fileName), conf); // 打开文件流 FSDataInputStream hdfsInStream = fs.open(new Path(fileName)); // 写入本地文件系统 OutputStream out = new FileOutputStream(dest); byte[] ioBuffer = new byte[1024]; // 按行读取 int readLen = hdfsInStream.read(ioBuffer); while (-1 != readLen) { out.write(ioBuffer, 0, readLen); System.out.println(new String(ioBuffer)); readLen = hdfsInStream.read(ioBuffer); } out.close(); hdfsInStream.close(); fs.close(); } /** * 列出HDFS目录 * * @param path * 路径 * @throws IOException */ public static void getDirectoryFromHdfs(String path) throws IOException { // 加载配置文件 Configuration conf = new Configuration(); conf.addResource("conf/core-site.xml"); // 获取HDFS文件系统 FileSystem fs = FileSystem.get(URI.create(path), conf); // 获取指定路径下的文件 FileStatus fileList[] = fs.listStatus(new Path(path)); int size = fileList.length; // 循环输出文件 for (int i = 0; i < size; i++) { System.out.println("name:" + fileList[i].getPath().getName() + "\t\tsize:" + fileList[i].getLen()); } fs.close(); } }
相关推荐
在Java编程环境中,Hadoop分布式文件系统(HDFS)提供了丰富的Java API,使得开发者能够方便地与HDFS进行交互,包括文件的上传、下载、读写等操作。本篇文章将详细探讨如何使用HDFS Java API来实现文件上传的功能。 ...
该 API 提供了多种方法来操作文件和目录,包括创建、删除、读取和写入文件,列出目录中的文件和子目录等。 二、HDFS Java API 操作步骤 1. 启动 Hadoop 服务 在 master 服务器上执行 `./start-all.sh` 命令以启动...
* org.apache.hadoop.fs.FileSystem:该类提供了文件系统的基本操作,包括文件的读取、写入、复制、删除等。 * org.apache.hadoop.fs.Path:该类表示 HDFS 中的一个文件路径。 * org.apache.hadoop.conf....
以上就是使用Java API操作Hadoop HDFS创建目录的完整过程。在实际应用中,你可能需要处理异常,优化错误处理,并根据具体需求进行更复杂的操作,比如读写文件、检查文件是否存在等。通过熟练掌握HDFS的Java API,你...
Java API提供了访问HDFS的接口,例如`org.apache.hadoop.fs.FileSystem`类,可以用于读取、写入和管理文件系统中的文件。 2. **Hadoop MapReduce**:MapReduce是Hadoop用于并行处理和分析大数据的编程模型。在GROUP...
在Eclipse中远程连接到Hadoop集群,并通过HDFS的Java API操作文件是一套涉及多个步骤的技术流程,这套流程主要涉及到分布式计算和文件系统操作的知识。首先,我们来梳理一下整个过程中的关键知识点。 第一步:启动...
1. **HDFS API**:HDFS API是Hadoop的核心组件之一,提供了对分布式文件系统的基本操作,如打开、创建、读取、写入、移动和删除文件或目录。主要类包括`FSDFSClient`、`FileSystem`、`Path`等。 2. **FileSystem...
通过这些API,我们可以实现数据的上传、下载、查找、删除等基本操作,以及更复杂的文件系统操作。 在实际编程中,我们通常会创建一个Java类,导入Hadoop的相关库,然后使用FileSystem类和Path类等来执行HDFS操作。...
标签:apache、hdfs、hadoop、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
适合刚接触hadoop的学生或小白,内容包括HDFS shell操作及HDFS Java API编程 有图片有代码
标签:apache、hdfs、hadoop、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...
以下是一个使用 HDFS API 编写的操作文件系统的程序: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org....
内容涵盖HDFS的JAVA API操作,如文件读取、写入、删除、元数据查询和文件列表等,以及MapReduce编程模型的多个应用,包括求平均数、Join操作、TopK算法、二次排序,并涉及自定义InputFormat、OutputFormat和shuflle...
HDFS在JAVA API中的操作,以及在ecplise中的配置详情。
2. 使用HDFS API:对于Java应用程序,可以使用Hadoop的FSDataOutputStream类,通过创建一个FileSystem实例,然后调用`create()`方法来上传文件。 三、HDFS的文件下载 1. 命令行工具:使用`hadoop fs -get`命令将...
1. **HDFS API集成**:为了操作HDFS,我们需要使用Hadoop的Java API。这包括创建HDFS客户端,连接NameNode,执行读写操作等。例如,`FileSystem`类用于打开、关闭和管理文件系统,`FSDataInputStream`和`...
HDFS Shell命令则用于交互式操作,如创建目录、上传/下载文件、查看文件内容等,这些命令包括ls、mkdir、put、get、rm等,通过它们可以熟练掌握HDFS的基本操作。 四、HDFS项目开发环境 在Hadoop集群的主节点上搭建...
标签:apache、hdfs、hadoop、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...
该资源是java通过api的方式来操作hadoop,主要有以下操作: 一.文件操作 1.上传本地文件到hadood 2.在hadoop中新建文件,并写入 3.删除hadoop上的文件 4.读取文件 5.文件修改时间 二.目录操作 1.在hadoop上创建目录 ...
在Hadoop生态系统中,Java...总之,Java与Hadoop 2.4的HDFS交互涉及配置、连接、I/O操作以及文件和目录的管理。通过熟练掌握`FileSystem` API,你可以有效地编写管理HDFS的Java程序,实现对大数据集的高效存储和处理。