使用Java Api操作HDFS过程详解

 更新时间:2019年09月27日 14:44:55   作者:左岩的梦想园  
这篇文章主要介绍了使用Java Api操作HDFS过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

如题 我就是一个标题党 就是使用JavaApi操作HDFS,使用的是MAVEN,操作的环境是Linux

首先要配置好Maven环境,我使用的是已经有的仓库,如果你下载的jar包 速度慢,可以改变Maven 下载jar包的镜像站改为 阿里云。

贴一下 pom.xml

使用到的jar包

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>
    </dependency>
    
    <!-- hadoop Client -->
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-client</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    
</dependencies>

然后就是操作HDFS的代码

package com.zuoyan.hadoop.hdfs;

import java.io.File;
import java.io.FileInputStream;

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

/**
 * use java api operate hdfs
 * 
 * @author beifeng
 * 
 */
public class HdfsApp {

  // get FileSystem
  public static FileSystem getFileSystem() throws Exception {
    Configuration conf = new Configuration();
    FileSystem fileSystem = FileSystem.get(conf);
    return fileSystem;
  }

  public static void read(String fileName) throws Exception {

    FileSystem fileSystem = getFileSystem();

    // read Path
    Path readPath = new Path(fileName);

    FSDataInputStream inStream = fileSystem.open(readPath);

    try {

      IOUtils.copyBytes(inStream, System.out, 4096, false);

    } catch (Exception e) {
      // TODO: handle exception
      e.printStackTrace();
    } finally {
      // if Exception close Stream
      IOUtils.closeStream(inStream);
    }
  }

  public static void main(String[] args) throws Exception{
      
      //String fileName = "/user/beifeng/mapreduce/wordcount/input/wc.input";
      //read(fileName);
    
      FileSystem fileSystem = getFileSystem();
      //write path
      String putFileName = "/user/beifeng/put-wc.input";
      
      Path writePath = new Path(putFileName);
      
      FSDataOutputStream outputStream = fileSystem.create(writePath);
      
      FileInputStream inputStream = new FileInputStream(
          new File("/opt/modules/hadoop-2.5.0/wc.input"));
      
      try {
        IOUtils.copyBytes(inputStream, outputStream, 4096,false);
      } catch (Exception e) {
        // TODO: handle exception
        inputStream.close();
        outputStream.close();
      }    
  }
}

思路

可以使用Java操作hdfs的api 制作一个基于HDFS的 云盘 ,可以对文件进行 上传 、删除、移动目录 、查看目录,但是不可以对文件的内容进行修改!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解java jinfo命令

    详解java jinfo命令

    jinfo是jdk自带的命令,用来查看jvm的配置参数.通常会先使用jps查看java进程的id,然后使用jinfo查看指定pid的jvm信息,需要的朋友可以参考下
    2021-06-06
  • 教你快速搭建sona服务及idea使用sona的方法

    教你快速搭建sona服务及idea使用sona的方法

    Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,本文给大家分享搭建sona服务及idea使用sona的方法,感兴趣的朋友一起看看吧
    2021-06-06
  • Java日常练习题,每天进步一点点(35)

    Java日常练习题,每天进步一点点(35)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • spring强行注入和引用实例解析

    spring强行注入和引用实例解析

    这篇文章主要介绍了spring强行注入和引用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Java动态代理模式的深入揭秘

    Java动态代理模式的深入揭秘

    这篇文章主要给大家介绍了关于Java动态代理模式的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • 基于JavaMail API收发邮件的方法

    基于JavaMail API收发邮件的方法

    这篇文章主要介绍了基于JavaMail API收发邮件的方法,实例分析了javamail的使用方法与相关注意事项,非常具有实用价值,需要的朋友可以参考下
    2015-07-07
  • python实战之德州扑克第一步-发牌

    python实战之德州扑克第一步-发牌

    这篇文章主要介绍了python实战之德州扑克第一步-发牌,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • 详解Java的MyBatis框架与Spring框架整合中的映射器注入

    详解Java的MyBatis框架与Spring框架整合中的映射器注入

    映射器注入方式可以将MyBatis与Spring映射好的XML文件实现配置共用,这里我们就来详解Java的MyBatis框架与Spring框架整合中的映射器注入:
    2016-06-06
  • Maven安装本地的jar包和创建带模板的自定义项目的操作过程

    Maven安装本地的jar包和创建带模板的自定义项目的操作过程

    这篇文章主要介绍了Maven安装本地的jar包和创建带模板的自定义项目,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • Java中的多态用法实例分析

    Java中的多态用法实例分析

    这篇文章主要介绍了Java中的多态用法,较为详细的分析了java中多态的概念与相关的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04

最新评论