本文主要介绍了 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操作-上传文件,附带所需全部jar包,欢迎下载学习。
ecplise远程连接hadoop--hdfs java api操作文件.pdf
java操作Hadoop源码之HDFS Java API操作-创建目录,附带所需全部jar包,欢迎下载学习。
标签:apache、hdfs、hadoop、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
自己整理的hadoop的java-api。各个API写得比较简单,比较细,适合初学者参考。PS:集群请自行搭建
适合刚接触hadoop的学生或小白,内容包括HDFS shell操作及HDFS Java API编程 有图片有代码
HDFS在JAVA API中的操作,以及在ecplise中的配置详情。
该资源是java通过api的方式来操作hadoop,主要有以下操作: 一.文件操作 1.上传本地文件到hadood 2.在hadoop中新建文件,并写入 3.删除hadoop上的文件 4.读取文件 5.文件修改时间 二.目录操作 1.在hadoop上创建目录 ...
标签:apache、hadoop、hdfs、client、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
标签:apache、hdfs、hadoop、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...
标签:apache、hdfs、hadoop、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...
标签:apache、hdfs、hadoop、jar包、java、API文档、中英对照版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
Java操作Hdfs,配置开发环境,NameNode详解,DataNode详解,namenode与datanode的工作机制
hdfs api,研究hadoop的可以下来参考
标签:apache、hadoop、hdfs、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
在搭建完hadoop大数据系统(CDH5.16.1)后,如何访问hdfs文件系统上的数据呢?那当然是通过构建maven项目 使用java api接口进行文件了。为此,特别进行了hdfs文件系统java api访问的整理。
标签:apache、hadoop、hdfs、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...
标签:apache、hadoop、hdfs、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
A.2实验二:熟悉常用的HDFS操作 ...(3)熟悉HDFS操作常用的Java API。 A.2.2 实验平台 (1)操作系统:Linux(建议Ubuntu 16.04)。(2) Hadoop版本:2.7.1。 (3)JDK版本:1.7或以上版本。(4) Java IDE:Eclipse。
javaAPI操作HDFS,测试可用 window环境需要下载hadoop客户端