`
tcw290
  • 浏览: 21241 次
  • 性别: 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实现的文件存储系统.zip

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

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

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

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

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

    基于hadoop+hbase+springboot实现的分布式网盘系统,适合本科毕业设计

    4.文件上传与下载 基于hadoop+hbase+springboot实现的分布式网盘系统,适合本科毕业设计 资源包含的整个demo在Hadoop,和Hbase环境搭建好了,可以启动起来。 技术选型 1.Hadoop 2.Hbase 3.SpringBoot ...... ...

    基于hadoop实现,利用ssh框架实现hdfs网盘+源代码+文档说明

    基于hadoop实现,利用ssh框架实现hdfs网盘+源代码+文档说明 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,...

    基于Hadoop实现KNN算法+源代码+文档说明

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

    基于hadoop实现的电影网站+源代码+文档说明

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

    基于Hadoop实现的朴素贝叶斯分类(MapReduce实现)+源代码+文档说明+数据集

    基于Hadoop实现的的朴素贝叶斯分类(MapReduce实现)+源代码+文档说明+数据集 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审...

    基于Hadoop实现的的小型数据分析项目的设计与实现+源代码+文档说明+数据库

    基于Hadoop实现的的小型数据分析项目的设计与实现+源代码+文档说明+数据库 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均...

    基于Hadoop实现的好友推荐系统+源代码+文档说明

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

    基于Hadoop实现的智能购书系统+源代码+文档说明

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

    基于Hadoop实现的商品推荐引擎+源代码+文档说明

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

    基于hadoop实现的疾病信息统计平台+源代码+文档说明

    基于hadoop实现的疾病信息统计平台+源代码+文档说明 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载...

    基于hadoop实现的推荐算法详细讲解+源代码+文档说明

    基于hadoop实现的推荐算法详细讲解+源代码+文档说明 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载...

    基于hadoop实现的qq推荐好友+源代码+文档说明.

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

    基于Hadoop实现的的视频水印应用+源代码+文档说明

    基于Hadoop实现的的视频水印应用+源代码+文档说明 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载...

    基于Hadoop实现的图像处理示例+源代码+文档说明.

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

    hadoop实现的基于物品的推荐算法+源代码+文档说明

    hadoop实现的基于物品的推荐算法+源代码+文档说明 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载...

    山东大学大数据课程设计,基于hadoop实现的图书推荐系统+源代码+文档说明+数据集

    1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合...

    基于 hadoop 实现的电影推荐系统+源代码+文档说明+sql

    ### 基于 hadoop 实现的电影推荐系统+源代码+文档说明+sql 1. 用户评分 2. 分类推荐 3. 豆瓣推荐 4. 定制推荐(协同过滤) -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,...

Global site tag (gtag.js) - Google Analytics