hadoop文件系统的管理----》可以做网盘的呦
来源:互联网 发布:aero开启软件 编辑:程序博客网 时间:2024/05/05 02:39
今天给大家介绍一下通过hadoop的hdfs和Struts搭建一个网盘的基本框框
*************************************************************************************************************************
hdfs的基本操作
(1)获得给定路径下的文件列表 :
throws FileNotFoundException, IOException {String dst = "hdfs://localhost:9000/" + filename;Configuration conf = new Configuration();FileSystem fs = FileSystem.get(URI.create(dst), conf);FileStatus fileList[] = fs.listStatus(new Path(dst));int size = fileList.length;for (int i = 0; i < fileList.length; i++) {if (fileList[i].getLen() == 0) {//可以通过判断文件的大小来确定是否是文件还是文件夹} else {}}fs.close();return value;(2)上传文件到hdfs上
String localSrc = "/home/red-zhu/chen.txt";String dst = "hdfs://localhost:9000/user/" + name;System.out.println(dst); Configuration conf = new Configuration();FileSystem fs = FileSystem.get(URI.create(dst), conf);OutputStream out = fs.create(new Path(dst), new Progressable() { public void progress() {System.out.print(".");}});IOUtils.copyBytes(in, out, 4096, true);(3)下载文件到本地
String dst = "hdfs://localhost:9000/" + path;Configuration conf = new Configuration();FileSystem fs = FileSystem.get(URI.create(dst), conf);FSDataInputStream hdfsInStream = fs.open(new Path(dst));return hdfsInStream;(4)删除给定路径的文件
String d = "localhost:9000"+path;Configuration conf = new Configuration();FileSystem fs = FileSystem.get(URI.create(dfspath), conf);fs.deleteOnExit(new Path(dst));fs.close();
*******************************************************************************************************************************************
struts部分
(2-1)上传实现代码
private List<File> image; private List<String> imageContentType; private List<String> imageFileName; @Override public String execute() throws Exception { String dst = "hdfs://localhost:9000/user/qq1.txt"; String path = ServletActionContext.getServletContext().getRealPath( "/images"); System.out.println(path); System.out.println("保存路径为" + path); if (image.size() > 0) { /************************/ BufferedInputStream bis = null; /***********************/ for (int i = 0; i < image.size(); i++) { System.out.println("datas的个数" + image.size()); String filename = imageFileName.get(i); FileInputStream fis = new FileInputStream(image.get(i)); bis = new BufferedInputStream(fis); // FileUtils.copyFile(image.get(i), saveFile); hdfsUtil.uploadToHdfs(bis, filename); } } // for (int i = 0; i < image.size(); i++) // { // File data=image.get(i); // String fileName=imageFileName.get(i); // fileName=path+"\\"+fileName; // data.renameTo(new File(fileName)); // } return SUCCESS; } public List<File> getImage() { return image; } public void setImage(List<File> image) { this.image = image; } public List<String> getImageContentType() { return imageContentType; } public void setImageContentType(List<String> imageContentType) { this.imageContentType = imageContentType; } public List<String> getImageFileName() { return imageFileName; } public void setImageFileName(List<String> imageFileName) { this.imageFileName = imageFileName; }
(2-2)下载模块代码
private String fileName;private String flag;public String getFlag() {return flag;}public void setFlag(String flag) {this.flag = flag;}public String getFileName() {return fileName;}public void setFileName(String fileName) {this.fileName = fileName;}public InputStream getInputStream() throws FileNotFoundException,IOException {return hdfsUtil.readFromHdfs((String) (ActionContext.getContext().getSession().get("path"))+flag);}public String execute() {return "success";}
0 0
- hadoop文件系统的管理----》可以做网盘的呦
- hadoop文件系统的读取
- hadoop 的HDFS文件系统
- Hadoop的分布式文件系统
- Hadoop文件系统的操作
- hadoop的文件系统
- 文件系统的管理
- 硬盘的文件系统管理
- Linux的文件系统管理
- Linux的文件系统管理
- iOS文件系统的管理
- Linux的文件系统管理
- linux文件系统的管理
- Linux文件系统的管理
- iOS文件系统的管理
- iOS文件系统的管理
- Linux文件系统的管理
- hadoop的文件系统一致模型
- Tomcat 7.0.54 及 eclipse 配置
- Java String.Format() 方法及参数说明
- JS时间(日期)比较或相减
- Java代码
- Spring JdbcTemplate 查询结果集Map反向生成Java实体
- hadoop文件系统的管理----》可以做网盘的呦
- Socket通讯简单学习
- expdp impdp中 exclude/include 的使用
- ifconfig -a| grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' 获取所有mac地址
- rt3070移植
- Android使用BitmapFactory.Options解决加载大图片内存溢出问题
- Spring基于事件驱动模型的订阅发布模式代码实例详解
- 修改点击cell时显示的颜色
- 一个老工程师给年轻工程师的忠告