hdfs-文件上传下载
2019独角兽企业重金招聘Python工程师标准>>>
package hdfs;import org.apache.commons.lang.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils;import java.io.*; import java.net.URI;public class HDFS {private static String HDFSUri = "hdfs://hadoop.com:9000";/*** 1、获取文件系统** @retrun FileSystem 文件系统*/public static FileSystem getFileSystem(){//读取配置文件Configuration conf = new Configuration();//文件系统FileSystem fs = null;String hdfsUri = HDFSUri;if (StringUtils.isBlank(hdfsUri)){//返回默认文件系统,如果在hadoop集群下运行,使用此种方法可直接获取默认文件系统;try{fs = FileSystem.get(conf);}catch(IOException e){e.printStackTrace();}}else{//返回指定的文件系统,如果在本地测试,需要此种方法获取文件系统;try{URI uri = new URI(hdfsUri.trim());fs = FileSystem.get(uri,conf,"zwh");} catch (Exception e) {e.printStackTrace();}}return fs ;}/*** 2、创建文件目录* @param path 文件路径*/public static void mkdir(String path){try {FileSystem fs = getFileSystem();System.out.println("FilePath"+path);//创建目录fs.mkdirs(new Path(path));//释放资源fs.close();} catch (IOException e) {e.printStackTrace();}}/*** 3、判断目录是否存在** @param filePath 目录路径* @param create 若不存在是否创建**/public static boolean existDir(String filePath,boolean create){boolean flag = false;if (!StringUtils.isNotEmpty(filePath)){return flag;}try{Path path = new Path(filePath);//FileSystem对象FileSystem fs = getFileSystem();if (create){if (!fs.exists(path)){fs.mkdirs(path);}}if (fs.isDirectory(path)){flag = true;}}catch (Exception e){e.printStackTrace();}return flag;}/*** 4、本地文件上传至HDFS** @param srcFile 源文件路径* @param destPath 目的文件路径*/public static void copyFileToHDFS(String srcFile,String destPath) throws Exception{FileInputStream fis = new FileInputStream(new File(srcFile));//读取本地文件Configuration config = new Configuration();FileSystem fs = FileSystem.get(URI.create(HDFSUri+destPath),config,"zwh");OutputStream os = fs.create(new Path(destPath));//cpoyIOUtils.copyBytes(fis,os,4096,true);System.out.println("copy 完成 ......");fs.close();}/*** 5、从HDFS下载文件到本地** @param srcFile 源文件路径* @param destPath 目的文件路径**/public static void getFile(String srcFile,String destPath)throws Exception{//HDFS文件地址String file = HDFSUri+srcFile;Configuration config = new Configuration();//构建filesystemFileSystem fs = FileSystem.get(URI.create(file),config,"zwh");//读取文件InputStream is = fs.open(new Path(file));IOUtils.copyBytes(is,new FileOutputStream(new File(destPath)),2048,true);System.out.println("下载完成......");fs.close();}/*** 6、删除文件或者文件目录** @param path*/public static void rmdir(String path){try {//返回FileSystem对象FileSystem fs = getFileSystem();String hdfsUri = HDFSUri;if (StringUtils.isNotBlank(hdfsUri)){path = hdfsUri+path;}System.out.println("path"+path);//删除文件或者文件目录 delete(Path f)此方法已经弃用System.out.println(fs.delete(new Path(path),true));fs.close();} catch (Exception e) {e.printStackTrace();}}/*** 7、读取文件的内容** @param filePath* @throws IOException*/public static void readFile(String filePath)throws IOException{Configuration config = new Configuration();String file = HDFSUri+filePath;FileSystem fs = FileSystem.get(URI.create(file),config);//读取文件InputStream is =fs.open(new Path(file));//读取文件IOUtils.copyBytes(is, System.out, 2048, false); //复制到标准输出流fs.close();}/*** 主方法测试*/public static void main(String[] args) throws Exception {//连接fsFileSystem fs = getFileSystem();System.out.println(fs.getUsed());//创建路径 // mkdir("/dit2");//验证是否存在 // System.out.println(existDir("/dit2",false));//上传文件到HDFS // copyFileToHDFS("D:\\controller.log","/dit/controller.log");//下载文件到本地 // getFile("/dit/controller.log","D:\\HDFSTest.txt");// getFile(HDFSFile,localFile);//删除文件 // rmdir("/dit2");//读取文件readFile("/dit/controller.log");}} |
参考
https://www.cnblogs.com/zh-yp/p/7884084.html
转载于:https://my.oschina.net/zhongwenhao/blog/2998288
hdfs-文件上传下载相关推荐
- 6.HDFS文件上传和下载API
HDFS文件上传和下载API package hdfsAPI;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop ...
- 教你如何实现c#文件上传下载功能
简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...
- [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...
引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...
- SpringMVC整合fastdfs-client-java实现web文件上传下载
为什么80%的码农都做不了架构师?>>> 版权声明:本文为博主原创文章,转载请标明出处(http://blog.csdn.net/wlwlwlwl015)Thanks. 目录( ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- 文件上传 java web_JavaWeb 文件上传下载
1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下 ...
- ASP.NET中文件上传下载方法集合
asp.net 2008-08-23 21:10:35 阅读0 评论0 字号:大中小 订阅 ASP.NET中文件上传下载方法集合 文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给 ...
- salesforce 零基础学习(四十二)简单文件上传下载
项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文 ...
- ASP.NET中常用的文件上传下载方法
ASP.NET中常用的文件上传下载方法 文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括: 1.如何解决文件上传大小的限制 2.以文件形式保存到服务 ...
- java实现excel文件上传_java相关:SpringMVC下实现Excel文件上传下载
java相关:SpringMVC下实现Excel文件上传下载 发布于 2020-6-21| 复制链接 摘记: 在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据.下载统计数据 ...
最新文章
- Linux服务器生产环境中的文件删除与替换
- 【Uva 1625】Color Length
- Puffer:专注拥塞控制、带宽预测和ABR
- 怎样洗头使头发变黑变多
- iOS 关于NSString的一些方法
- 牛客练习赛24 C PH试纸
- how to add external library in qt under ubuntu
- 面包屑php源码,自己写的面包屑导航
- 「leetcode」860.柠檬水找零【贪心算法】详细!
- SpringMVC框架学习上篇
- 计算机四级和网络工程师区别,计算机四级网络工程师和软考中级的网络工程师有什么区别啊?...
- c语言大于一小于10,C语言首先输入一个大于2且小于10的整数
- C#串口通信——协议格式
- better-scroll实现滚动效果
- 远心镜头与普通镜头拍摄工件孔径对比
- 南大软院大神养成计划--HTML和CSS基础课程(二)
- ES6——TDZ(暂时性死区)
- 如何利用新闻营销提高商品成交率?
- CSS基础(新手入门教程)
- putty下载安装教程