• Hadoop入门学习笔记---part4


      紧接着《Hadoop入门学习笔记---part3》中的继续了解如何用java在程序中操作HDFS。

          众所周知,对文件的操作无非是创建,查看,下载,删除。下面我们就开始应用java程序进行操作,前提是按照《Hadoop入门学习笔记---part2》中的已经在虚拟机中搭建好了Hadoop伪分布环境;并且确定现在linux操作系统中hadoop的几个进程已经完全启动了。

         好了,废话不多说!实际的例子走起。

       在myeclipse中新建一个java工程:

        在项目工程中新建一个lib包用于存放项目需要的相关jar包,关于build path我就不多说了。相关jar包如下:

        

      1. 创建文件:

    public static final String HDFS_PATH = "hdfs://hadoop:9000/hello";   //创建文件的url
        public static void main(String[] args) {
            try {
                URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
                final URL url = new URL(HDFS_PATH);
                final InputStream in = url.openStream();
                IOUtils.copyBytes(in, System.out, 1024, true);
            } catch (Exception e) {
                e.printStackTrace();
            }

           在浏览器中查看效果:输入http://hadoop:50070/ 然后点击Browse the filesystem 就可以查看到在HDFS根目录下刚刚新建的那个文件了。

        

      2. 上传文件:首先应该明白的就是上传首先需要在HDFS中创建,然后以流的形式写入。

     public static final String HDFS_PATH = "hdfs://hadoop:9000/";
     final FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),new Configuration());
      // 上传文件
     final FSDataOutputStream out = fileSystem.create(new Path(FILE_PATH));
     final FileInputStream in = new FileInputStream("H:/redTestFileForHadoop");
     IOUtils.copyBytes(in, out, 1024, true);

          效果如下:直接在浏览器中打开。

      (上传1)

    ---------------------------------------分割线---------------------------------------------------------

        (上传2)

      3. 下载文件,直接输出到控制台,也可以单独将这个写入到一个文件里面,这里就不介绍了,代码如下:

    public static final String HDFS_PATH = "hdfs://hadoop:9000/";
     final FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),new Configuration());
     // 下载文件
     final FSDataInputStream in = fileSystem.open(new Path(FILE_PATH));
     IOUtils.copyBytes(in, System.out,1024, true);

          效果图如下:

         

      4. 删除文件:   

     public static final String HDFS_PATH = "hdfs://hadoop:9000/";
     final FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),new Configuration());
     fileSystem.delete(new Path(FILE_PATH), true);

         效果就不用说了,直接在浏览器中看不到这个文件了。

         很多时候看起来很复杂的东西其实是自己心里面的认可,实际上也没有想象中的那么难!好好体验一下吧。瞬间感觉这个和我们平常用到的云网盘有几分一样了。哈哈,不妨做一个属于自己的云网盘。绝对可以的!

    作者:itRed                                  邮箱:it_red@sina.com            
    博客:http://www.cnblogs.com/itred          个人网站:http://wangxingyu.jd-app.com
    ***版权声明:本文版权归作者和博客园共有,欢迎转载,但请在文章显眼位置标明文章出处。未经本人书面同意,将其作为他用,本人保留追究责任的所有权利。
  • 相关阅读:
    Git windows换行问题
    java之aop使用及自定义注解
    Shiro授权及注解式开发
    Git Gui、Ssh key的使用和ideaui配置使用Git解决冲突(下)
    Git和Github的介绍、简单操作、冲突(上)
    Shiro身份认证、盐加密
    Shiro简介、入门案例、web容器的集成
    SpringMVC入门
    Mybatis之关联关系(一对多、多对多)
    Mybatis整合(Redis、Ehcache)实现二级缓存
  • 原文地址:https://www.cnblogs.com/itred/p/4202257.html
Copyright © 2020-2023  润新知