JAVA操作HDFS案例
2017-07-03 22:01
183 查看
Jar包引入,pom.xml:
将本地文件上传到hdfs服务器:
在开发中我没有引入“core-site.xml”配置文件,所以在本地调用时使用conf进行配置“conf.set("fs.defaultFS","hdfs://hzq:9000");“,下面雷同。
将hdfs上文件下载到本地:
![](http://img.blog.csdn.net/20170703221342857?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbW1kMDMwOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
结果分析:
“listFiles“列出的是hdfs上所有文件的路径,不包括文件夹。根据你的设置,支持递归查找。
”listStatus“列出的是所有的文件和文件夹,不支持递归查找。如许递归,需要自己实现。
总结:熟能生巧,加油!!!
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.8.0</version> </dependency>
将本地文件上传到hdfs服务器:
/** * 上传文件到hdfs上 */ @Test public void upload() throws IOException { Configuration conf = new Configuration(); conf.set("fs.defaultFS","hdfs://hzq:9000"); FileSystem fs = FileSystem.get(conf); fs.copyFromLocalFile(new Path("/home/hzq/jdk1.8.tar.gz"),new Path("/demo")); }解析:
在开发中我没有引入“core-site.xml”配置文件,所以在本地调用时使用conf进行配置“conf.set("fs.defaultFS","hdfs://hzq:9000");“,下面雷同。
将hdfs上文件下载到本地:
/** * 将hdfs上文件下载到本地 */ @Test public void download() throws IOException { Configuration conf = new Configuration(); conf.set("fs.defaultFS","hdfs://hzq:9000"); FileSystem fs = FileSystem.newInstance(conf); fs.copyToLocalFile(new Path("/java/jdk1.8.tar.gz"),new Path("/home/hzq/")); }删除hdfs上指定文件:
/** * 删除hdfs上的文件 * @throws IOException */ @Test public void removeFile() throws IOException { Configuration conf = new Configuration(); conf.set("fs.defaultFS","hdfs://hzq:9000"); FileSystem fs = FileSystem.newInstance(conf); fs.delete(new Path("/demo/jdk1.8.tar.gz"),true); }在hdfs上创建文件夹:
/** * 在hdfs更目录下面创建test1文件夹 * @throws IOException */ @Test public void mkdir() throws IOException { Configuration conf = new Configuration(); conf.set("fs.defaultFS","hdfs://hzq:9000"); FileSystem fs = FileSystem.newInstance(conf); fs.mkdirs(new Path("/test1")); }列出hdfs上所有的文件或文件夹:
@Test public void listFiles() throws IOException { Configuration conf = new Configuration(); conf.set("fs.defaultFS","hdfs://hzq:9000"); FileSystem fs = FileSystem.newInstance(conf); // true 表示递归查找 false 不进行递归查找 RemoteIterator<LocatedFileStatus> iterator = fs.listFiles(new Path("/"), true); while (iterator.hasNext()){ LocatedFileStatus next = iterator.next(); System.out.println(next.getPath()); } System.out.println("----------------------------------------------------------"); FileStatus[] fileStatuses = fs.listStatus(new Path("/")); for (int i = 0; i < fileStatuses.length; i++) { FileStatus fileStatus = fileStatuses[i]; System.out.println(fileStatus.getPath()); } }运行结果:
结果分析:
“listFiles“列出的是hdfs上所有文件的路径,不包括文件夹。根据你的设置,支持递归查找。
”listStatus“列出的是所有的文件和文件夹,不支持递归查找。如许递归,需要自己实现。
总结:熟能生巧,加油!!!
相关文章推荐
- JAVA操作HDFS案例的简单实现
- JAVA操作HDFS案例的简单实现
- Java 操作HDFS 简单案例 (Kerberos已开启)
- 【JavaWeb-19】Hibernate简介、入门案例、Session操作、2个配置文件详解
- hadoop之旅(三)java操作HDFS
- HDFS 的Java操作“ Wrong FS: hdfs://xxx, expected: file:///”
- HDFS的java接口——简化HDFS文件系统操作
- JAVA操作HDFS API(hadoop) HDFS API详解
- hadoop hdfs 常用操作java代码
- java-对两个数进行加减乘除操作案例
- Java POI 操作Excel总结笔记--使用配置和使用案例篇
- 和我一起学Hadoop(四):java客户端操作HDFS
- Hadoop学习二(java api调用操作HDFS)
- Hadoop初学指南(4)--使用java操作HDFS
- C#、JAVA操作Hadoop(HDFS、Map/Reduce)真实过程概述。组件、源码下载。无法解决:Response status code does not indicate success: 500。
- 使用java操作HDFS
- Hdfs体系结果及shell java操作方式 笔记五
- 使用java写HDFS的操作代码
- JAVA操作HDFS API(hadoop)
- [Hadoop--基础]--java操作hdfs(上传、下载、查询)