常用HDFS的API操作
2017-10-15 19:08
645 查看
HDFS常用的API操作如下:
1、创建目录2、上传文件
3、重命名文件
4、删除文件
5、下载文件
6、展示目录
HDFS 的API演示(利用Junit来操作)
import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.junit.After; import org.junit.Before;
public class Test { FileSystem fs = null; @Before public void init() throws Exception{ URI uri = new URI("hdfs://192.168.121.129:9000"); Configuration conf = new Configuration(); fs = FileSystem.get(uri,conf,"hadoop"); }
//————————————————————————————
//创建目录 @org.junit.Test public void createFilts() throws Exception{ boolean b = fs.mkdirs(new Path("/test9/aaa/bbb")); if(b){ System.out.println("创建成功"); } else{ System.out.println("创建失败"); } }
//—————————————————————————————
//上传文件(前提是上传所致的文件夹必须存在) @org.junit.Test public void putFile() throws IllegalArgumentException, IOException{ fs.copyFromLocalFile(new Path("c:/zjl.txt"),new Path("/test9/aaa/bbb")); boolean b = fs.exists(new Path("/test9/aaa/bbb/zjl.txt")); if(b){ System.out.println("上传成功"); } else{ System.out.println("上传失败"); } }
//————————————————————————————–
//下载文件 @org.junit.Test public void download() throws IllegalArgumentException, IOException{ //下面这个方法的执行可能会在校验过程中失败,同时执行的结果相当于剪切 //fs.copyToLocalFile(new Path("/test9/aaa/bbb/zjl.txt"), new Path("c:\\")); // 下面这个方法可以控制校验 fs.copyToLocalFile(false, new Path("/test9/aaa/bbb/zjl.txt"), new Path("c:\\"), true); //fs.copyToLocalFile(delSrc, src, dst, useRawLocalFileSystem); 注:上面的这个重载方法中的delSrc指的是当你执行这个命令时,若执行该值为false 则不删除 hdfs上的相应文件(也就是不进行剪切)。 若为true则删除。 useRawLocalFileSystem 指的是 是否开启文件校验 }
//——————————————————————————————–
//删除文件夹 @org.junit.Test public void delete() throws IllegalArgumentException, IOException{ boolean b = fs.delete(new Path("/test9/aaa/bbb/zjl.txt"), true); System.out.println(b); 注: fs.delete(f, recursive) 方法中recursive 为true时能够将带有内容的文件夹删除,为false时,则只能删除空目录。 }
//——————————————————————————————–
重命名 @org.junit.Test public void rename() throws IllegalArgumentException, IOException{ boolean b =fs.rename(new Path("/test9/aaa/bbb/zjl.txt"), new Path("/test9/aaa/bbb/aa.txt")); System.out.println(b); 注:这里更改的是最后的文件的名,而不要试图去更改中间文件夹(aaa/bbb)的名 }
//———————————————————————————————
查看文件及文件夹的信息(仅显示儿子不显示孙子) @org.junit.Test public void getFileAndDirectory() throws FileNotFoundException, IllegalArgumentException, IOException{ FileStatus[ ] fss = fs.listStatus(new Path("/")); String flag =""; for(FileStatus f : fss){ if(f.isDirectory()){ flag = "Directory"; } else{ flag ="file"; } System.out.println(flag + "\t" +f.getPath().getName()); } }
//———————————————————————————————
@After public void finish() throws IOException{ fs.close(); } }
相关文章推荐
- HDFS常用的文件API操作
- HDFS常用的文件API操作
- 第二篇:Hadoop HDFS常用JAVA api操作程序
- 常用HDFS的API操作
- java api 操作 hdfs
- Elasticsearch常用操作API
- Javascript操作DOM常用API总结
- HBase常用的数据库API操作
- HDFS常用文件操作命令及注意事项
- HDFS的常用操作--hdfs下的文件操作常用命令总结
- hadoop HDFS常用操作
- HDFS常用操作
- hadoop hdfs API操作
- Hadoop Java API 操作 hdfs--1
- hadoop的hdfs常用文件操作命令
- Java 封装 HDFS API 操作
- JavaScript 操作 DOM 常用 API 总结
- hdfs文件系统api操作
- HDFS 的API 封装成 class Scala操作
- hdfs 常用java API---代码篇(二)