专栏首页梅花的学习记录使用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 条评论
登录 后参与评论

相关文章

  • HDFS系列(6) | HDFS的java API操作

    不温卜火
  • 大数据 | Java 操作 HDFS 常用 API

    上篇文章介绍了关于 HDFS 的常用命令,其常用的命令都有相应的 API,用命令可以完成的功能,使用 Java API 也可以完成。本文介绍关于...

    码农UP2U
  • Hadoop入门 Java api操作hdfs

    Emperor_LawD
  • 使用 Python 操作 HDFS

    一份执着✘
  • 使用Java操作Elasticsearch(Elasticsearch的java api使用)

    1、Elasticsearch是基于Lucene开发的一个分布式全文检索框架,向Elasticsearch中存储和从Elasticsearch中查询,格式是js...

    别先生
  • Hadoop的hdfs api操作 原

    用户2603479
  • HDFS系列(7) | HDFS的 I/O流 API操作

    需求:分块读取HDFS上的大文件,比如根目录下的/hadoop-2.7.2.tar.gz

    不温卜火
  • 大数据-HDFS的API操作

    由于 Hadoop 擅长存储大文件,因为大文件的元数据信息比较少,如果 Hadoop集群当中有大量的小文件,那么每个小文件都需要维护一份元数据信息,会大大的增加...

    cwl_java
  • Python API 操作Hadoop hdfs详解

    由于是windows环境(linux其实也一样),只要有pip或者setup_install安装起来都是很方便的

    砸漏
  • HDFS:常用客户端API及IO操作

    吟风者
  • 使用Java API操作zookeeper的acl权限

    注意的是,exists操作和getAcl操作并不受ACL许可控制,因此任何客户端可以查询节点的状态和节点的ACL。

    端碗吹水
  • HDFS之使用Java客户端对文件的一些操作

    孙晨c
  • 【教程】Hadoop HDFS 实践

    1. 教程内容 1)目标 主要帮您解决以下几个问题: HDFS 是用来解决什么问题的?怎么解决的? 如何在命令行下操作 HDFS ? 如何使用 java api...

    dys
  • 使用curl操作github API V

    前面两节侧重于理论上介绍,因为有这些理论上的准备,后面的应用才可以得心应手。因为现在的基础安全库包括算法实际上大部分都已经实现了,并且都是免费的,所以掌握基本原...

    py3study
  • 如何使用Java API访问HDFS为目录设置配额

    Fayson
  • HBase的Java API操作

    云飞扬
  • ZooKeeper的Java API操作

    process方法是Watcher接口中的一个回调方法,当ZooKeeper向客户端发送一个Watcher事件通知时,客户端就会对相应的process方法进行回...

    大数据梦想家
  • HBase篇--HBase操作Api和Java操作Hbase相关Api

    Hbase shell启动命令窗口,然后再Hbase shell中对应的api命令如下。

    LhWorld哥陪你聊算法
  • 深入浅出学大数据(三)分布式文件系统HDFS及HDFS的编程实践

    此系列主要为我的学弟学妹们所创作,在某些方面可能偏基础。如果读者感觉较为简单,还望见谅!如果文中出现错误,欢迎指正~

    不温卜火

扫码关注云+社区

领取腾讯云代金券