专栏首页梅花的学习记录使用Java Api 操作HDFS

使用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的 云盘 ,可以对文件进行 上传 、删除、移动目录 、查看目录,但是不可以对文件的内容进行修改!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Hadoop 分布式部署 三:基于Hadoop 2.x 伪分布式部署进行修改配置文件】

    首先在 hadoop-senior 的这台主机上 进行 解压 hadoop2.5 按照伪分布式的配置文件来进行配置

    梅花
  • SpringBoot 将自制的Starter 发布到远程公服

    上一篇文章:就是简单的介绍了如何自己制作一个starter ,由于上篇文章只是我个人的笔记,就是将其中重要的部分写出来了,少了其他的基础步骤,但是这个我自己就能...

    梅花
  • 《Java 面试问题 一 Spring 、SpringMVC 、Mybatis》

              Spring 是一款轻量级的 IOC (依赖反转) 和 APO (面向切面) 容器框架。(个人理解: 就是一个Bean对象容器,不用我们n...

    梅花
  • Hbase篇--Hbase和MapReduce结合Api

    Mapreduce可以自定义Inputforma对象和OutPutformat对象,所以原理上Mapreduce可以和任意输入源结合。

    LhWorld哥陪你聊算法
  • MapReduce快速入门系列(12) | MapReduce之OutputFormat

      OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口。下面介绍几种常见的OutputF...

    不温卜火
  • MapReduce快速入门系列(13) | MapReduce之reduce端join与map端join算法实现

      Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为val,最后进行...

    不温卜火
  • 大数据应用之HBase数据插入性能优化实测教程

    大家在使用HBase的过程中,总是面临性能优化的问题,本文从HBase客户端参数设置的角度,研究HBase客户端数据批量插入性能优化的问题。事实胜于雄辩,数据比...

    数据饕餮
  • Hadoop阅读笔记(一)——强大的MapReduce

    前言:来园子已经有8个月了,当初入园凭着满腔热血和一脑门子冲动,给自己起了个响亮的旗号“大数据 小世界”,顿时有了种世界都是我的,世界都在我手中的赶脚。可是.....

    JackieZheng
  • HBase Java API 03:HBase与MapReduce整合

    编写MapReduce程序,把"student"表中"info"列族下的"name"那一列抽取出来,存入新HBase表"student_extract"中,要求...

    CoderJed
  • Hadoop Mapper 阶段将数据直接从 HDFS 导入 Hbase

    数据源格式如下: 20130512 1 -1 -1 13802 1 2013-05-12 07:26:22 20130512 1 -1 -1 13802 ...

    用户1177713

扫码关注云+社区

领取腾讯云代金券