`
tcw290
  • 浏览: 22390 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hadoop 实现上传下载文件功能

 
阅读更多

实现文件的上传和下载:

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.Progressable;

public class UploadAndDown {

    public static void main(String[] args) {
        UploadAndDown uploadAndDown = new UploadAndDown();
        try {
            //将本地文件local.txt上传为HDFS上cloud.txt(从新命名为cloud.txt,可以cloud.txt)文件
          //注意:upLoadToCloud第一个参数是本地文件,第二个hdfs文件名,必须写文件名cloud.txt

            uploadAndDown.upLoadToCloud("local.txt", "cloud.txt");
            //将HDFS上的cloud.txt文件下载到本地cloudTolocal.txt文件
            uploadAndDown.downFromCloud("cloudTolocal.txt", "cloud.txt");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    private void upLoadToCloud(String srcFileName, String cloudFileName)
            throws FileNotFoundException, IOException {
        // 本地文件存取的位置linux下
       /// String LOCAL_SRC = "/home/sina/hbase2/bin/" + srcFileName;

      //window本地文件

     String LOCAL_SRC = "D:\\test" + srcFileName;
        // 存放到云端HDFS的位置input文件夹下
        String CLOUD_DEST = "hdfs://192.168.91.132:9000/user/hadoop/input/" + cloudFileName;        InputStream in = new BufferedInputStream(new FileInputStream(LOCAL_SRC));
        // 获取一个conf对象
        Configuration conf = new Configuration();
        // 文件系统
        FileSystem fs = FileSystem.get(URI.create(CLOUD_DEST), conf);
        // 输出流
        OutputStream out = fs.create(new Path(CLOUD_DEST), new Progressable() {
            @Override
            public void progress() {
                System.out.println("上传完成一个文件到HDFS");
            }
        });
        // 连接两个流,形成通道,使输入流向输出流传输数据
        IOUtils.copyBytes(in, out, 1024, true);
    }

    private void downFromCloud(String srcFileName, String cloudFileName) throws FileNotFoundException, IOException {
        // 云端HDFS上的文件
        String CLOUD_DESC = "hdfs://192.168.91.132:9000/user/hadoop/input/"+cloudFileName;
        // down到本地的文件
        String LOCAL_SRC = "/home/sina/hbase2/bin/"+srcFileName;
        // 获取conf配置
        Configuration conf = new Configuration();
        // 实例化一个文件系统
        FileSystem fs = FileSystem.get(URI.create(CLOUD_DESC), conf);
        // 读出流
        FSDataInputStream HDFS_IN = fs.open(new Path(CLOUD_DESC));
        // 写入流
        OutputStream OutToLOCAL = new FileOutputStream(LOCAL_SRC);
        // 将InputStrteam 中的内容通过IOUtils的copyBytes方法复制到OutToLOCAL中
        IOUtils.copyBytes(HDFS_IN, OutToLOCAL, 1024, true);
    }

}

在本地建立一个local.txt文件,运行个java程序,在eclipse下看到HDFS文件系统多了一个cloud.txt

同样也可以用hadoop的命令察看

sina@ubuntu:~/hadoop/bin$ hadoop fs -ls
Found 4 items
-rw-r--r--   3 sina supergroup         11 2012-12-23 23:23 /user/sina/Google.pdf
-rw-r--r--   3 sina supergroup         61 2012-12-23 23:59 /user/sina/cloud.txt
-rw-r--r--   3 sina supergroup         13 2012-12-23 22:49 /user/sina/demo.txt
drwxr-xr-x   - sina supergroup          0 2012-11-18 15:17 /user/sina/docs

同时在本地多了个cloudTolocal.txt文件:

sina@ubuntu:~/hbase2/bin$ ls *.txt
cloudTolocal.txt  hadoop.txt  local.txt

分享到:
评论

相关推荐

    hadoop文件上传下载

    在这个场景中,我们讨论的是如何利用Struts2这个Java Web框架来实现文件的上传和下载功能,目标是将文件存入Hadoop分布式文件系统(HDFS)中,并能够从HDFS中检索这些文件。下面将详细介绍这一过程涉及的关键知识点...

    实验4:hadoop文件上传.docx

    命令行上传文件可以使用 hadoop fs -put 命令,而 Java API 可以使用 FileSystem 的 copyFromLocalFile 方法上传文件。 3. Hadoop 集群:Hadoop 集群由多个节点组成,每个节点可以作为 NameNode 或 DataNode。启动 ...

    springmvc+hadoop+maven实现文件上传至hdfs

    在实际实现中,可能还需要编写一个HDFS操作工具类,这个类封装了连接HDFS、上传文件等操作。例如,可能会有一个名为`HdfsUploader`的类,其中包含如`uploadFile()`这样的方法,该方法接受文件路径和HDFS目标路径作为...

    基于hadoop的简易云盘实现.zip

    3. **云盘操作**:如用户身份验证、文件上传/下载、文件权限管理、文件搜索等基本功能的实现,这可能涉及到Hadoop的API和云盘服务的设计模式。 4. **数据一致性**:在分布式环境下,如何保证数据的一致性是重要的,...

    hadoop web tomcat上传文件

    在描述中提到的"自己写的一个WEB只有上传文件功能",这可能是一个简单的MVC(Model-View-Controller)结构的应用程序,其中Controller负责处理用户的上传请求,Model则处理文件存储到Hadoop的逻辑,而View可能只是一...

    基于Hadoop实现的文件存储系统.zip

    基于Hadoop实现的文件存储系统 技术点redis:利用redisson来对上传文件进行布隆过滤(已上传的文件无需再次上传);进行session会话管理;HDFSAPI操作(项目功能):创建文件夹,上传文件,下载文件,删除文件,查找...

    基于Hadoop实现的数据云盘系统项目源码资料大全.zip

    基于Hadoop实现的数据云盘系统项目源码资料大全.zip基于Hadoop实现的数据云盘系统,实现不同用户有不同的存储空间,不同的用户身份有不同的权限操作等功能软件设计思路 1、用户登录模块设计 输入图片说明 2、检索...

    JavaWeb操作hadoop2.6 HDFS,从页面上传,下载,列表展示的demo

    可以通过jQuery或Vue.js等库实现异步请求,动态加载文件列表,提供上传和下载的交互功能。 这个Demo对于初学者来说,是一个很好的学习资源,它展示了如何在实际项目中整合Hadoop HDFS、SpringMVC和MyBatis。在实践...

    hadoop的web上传、下载、更新、删除和文件追加

    本文将深入探讨Hadoop的Web接口功能,包括文件的上传、下载、更新、删除以及追加操作,帮助用户更方便地通过Web界面管理Hadoop分布式文件系统(HDFS)。 一、Hadoop Web接口概述 Hadoop的Web接口,也称为Hadoop ...

    基于hadoop的百度云盘+源代码+文档说明

    基于hadoop的百度云盘+源代码+文档说明 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目...

    hadoop实现的网盘管理项目.zip

    hadoop实现的网盘管理项目,包括系统登录,增删改查,文件的上传下下载等功能 hadoop实现的网盘管理项目,包括系统登录,增删改查,文件的上传下下载等功能 hadoop实现的网盘管理项目,包括系统登录,增删改查,文件...

    FileSmartHadoop文件上传下载-实现基于文件内容查询文件

    在IT行业中,大数据处理和...总之,FileSmartHadoop通过结合Hadoop的分布式存储和处理能力,以及MySQL的数据管理优势,实现了高效且可靠的文件上传下载及基于内容的查询功能,为大数据环境下的文件管理提供了有力支持。

    hadoop中hdfs文件(上传、下载、查看)操作.docx

    文件上传可以通过`FileSystem`的`copyFromLocalFile()`或`write()`方法实现,而下载则可以使用`copyToLocalFile()`。此外,还可以添加对文件权限、所有权、复制因子等属性的管理,以及更复杂的文件操作,如分割大...

    java操作Hadoop源码之HDFS Java API操作-上传文件

    除了上传文件,HDFS API还提供了删除文件、重命名文件、列举目录、检查文件状态等丰富的功能。例如,可以使用`fs.delete()`删除文件,`fs.rename()`重命名文件,`fs.globStatus()`获取匹配模式的所有文件。 7. **...

    hadoop上传文件功能实例代码

    hadoop上传文件功能实例代码 hadoop上传文件功能实例代码主要介绍了hadoop上传文件功能实例代码,需要的朋友可以参考下。hdfs上的文件是手动执行命令从本地Linux上传至hdfs的。在真实的运行环境中,我们不可能每次...

    hadoop1.2.1安装部署文档

    - **上传文件到节点**:将 Hadoop 安装包上传至各个节点。 - **解压 Hadoop**:在各节点上解压 Hadoop 安装包。 - **修改路径**:设置 Hadoop 的安装路径。 - **修改配置文件 core-site.xml**:配置 Hadoop 的核心...

    基于Hadoop的简单网盘实现源代码

    通常,这种网盘实现会包括文件的上传、下载、搜索、删除等基本功能。开发者可以通过分析和运行这些源代码,掌握Hadoop的相关API,以及如何在分布式环境中处理文件操作。 【标签】源代码 源代码是软件开发的基础,...

    基于Hadoop集群实现的视频在线播放+源代码+文档说明

    实现了视频文件分布式存储和转码,通过web在线播放视频流等功能 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96...

    C# 实现文件上传下载的源码

    这些类提供了与FTP服务器交互的能力,包括登录、列出目录、上传文件、下载文件等操作。 文件上传是将本地文件发送到远程服务器的过程。在C#中,我们可以创建一个FtpWebRequest对象,设置其方法属性为"STOR"(用于...

Global site tag (gtag.js) - Google Analytics