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-文件上传下载相关推荐

  1. 6.HDFS文件上传和下载API

    HDFS文件上传和下载API package hdfsAPI;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop ...

  2. 教你如何实现c#文件上传下载功能

    简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...

  3. [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  4. SpringMVC整合fastdfs-client-java实现web文件上传下载

    为什么80%的码农都做不了架构师?>>>    版权声明:本文为博主原创文章,转载请标明出处(http://blog.csdn.net/wlwlwlwl015)Thanks. 目录( ...

  5. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  6. 文件上传 java web_JavaWeb 文件上传下载

    1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下 ...

  7. ASP.NET中文件上传下载方法集合

    asp.net 2008-08-23 21:10:35 阅读0 评论0   字号:大中小 订阅 ASP.NET中文件上传下载方法集合 文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给 ...

  8. salesforce 零基础学习(四十二)简单文件上传下载

    项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文 ...

  9. ASP.NET中常用的文件上传下载方法

    ASP.NET中常用的文件上传下载方法 文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括: 1.如何解决文件上传大小的限制 2.以文件形式保存到服务 ...

  10. java实现excel文件上传_java相关:SpringMVC下实现Excel文件上传下载

    java相关:SpringMVC下实现Excel文件上传下载 发布于 2020-6-21| 复制链接 摘记: 在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据.下载统计数据 ...

最新文章

  1. Linux服务器生产环境中的文件删除与替换
  2. 【Uva 1625】Color Length
  3. Puffer:专注拥塞控制、带宽预测和ABR
  4. 怎样洗头使头发变黑变多
  5. iOS 关于NSString的一些方法
  6. 牛客练习赛24 C PH试纸
  7. how to add external library in qt under ubuntu
  8. 面包屑php源码,自己写的面包屑导航
  9. 「leetcode」860.柠檬水找零【贪心算法】详细!
  10. SpringMVC框架学习上篇
  11. 计算机四级和网络工程师区别,计算机四级网络工程师和软考中级的网络工程师有什么区别啊?...
  12. c语言大于一小于10,C语言首先输入一个大于2且小于10的整数
  13. C#串口通信——协议格式
  14. better-scroll实现滚动效果
  15. 远心镜头与普通镜头拍摄工件孔径对比
  16. 南大软院大神养成计划--HTML和CSS基础课程(二)
  17. ES6——TDZ(暂时性死区)
  18. 如何利用新闻营销提高商品成交率?
  19. CSS基础(新手入门教程)
  20. putty下载安装教程

热门文章

  1. css3美话网页元素
  2. STM32的ADC精度提高方法
  3. 全世界云计算宕机和中断[2013年-2014年集锦]
  4. Anaconda使用入门
  5. SpringData JPA整理
  6. Android--手势及触摸事件的注意点(一)
  7. 作业01-Java基本概念
  8. c# 开发项目的过程
  9. python学习之内部函数:
  10. Java是解释型还是编译型