Java API在HDFS上实现文件的上传下载到本地创建文件夹删除文件和重命名文件

Posted 野渡_无人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java API在HDFS上实现文件的上传下载到本地创建文件夹删除文件和重命名文件相关的知识,希望对你有一定的参考价值。

前期准备:

一、前期准备

(1)Hadoop集群已配置完毕

(2)linux系统安装jdk

(3)在linux系统中安装并破解IntelliJ IDEA

二、通过JAVA API接口操纵HDFS

1.在IDEA中创建maven项目

 

 2.设置配置文件

(1)修改pom.xml文件导入依赖如下,刷新,自动安装hdfs所需包

 (2)在hdfs项目的src->main->resources路径下创建log4j2.xml日志文件,添加内容如下

 3.在hdfs项目的src->main->java路径下创建com.min.hadoop包,然后在com.min.hadoop包下创建HdfsUtil.java、test.java实现hdfs的文件操作,项目目录结构如下图

 4.HdfsUtil.java文件实现了hdfs文件的上传、下载、删除、创建以及重命名操作,源代码如下

package com.min.hadoop;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class HdfsUtil 
    private FileSystem fs;
    HdfsUtil(String user)
        Configuration cfg = new Configuration();
        URI uri = null;
        try 
            uri = new URI("hdfs://Hadoop1:9000");
         catch (URISyntaxException e) 
            e.printStackTrace();
        
        try 
            // 根据配置文件,实例化成DistributedFileSystem
            fs = FileSystem.get(uri, cfg, user); // 得到fs句柄
         catch (IOException e) 
            e.printStackTrace();
         catch (InterruptedException e) 
            e.printStackTrace();
        
    
    /**
     * 上传文件
     */
    public void upload(String src, String dst)
        try 
            // 上传
            fs.copyFromLocalFile(new Path(src), new Path(dst));
         catch (IOException e) 
            e.printStackTrace();
        
    
    /**
     * 下载文件
     */
    public void download(String src, String dst)
        try 
            // 下载
            fs.copyToLocalFile(new Path(src), new Path(dst));
         catch (IOException e) 
            e.printStackTrace();
        
    
    /**
     * 创建文件夹
     */
    public void mkdir(String dir)
        try 
            fs.mkdirs(new Path(dir));
         catch (IOException e) 
            // 创建目录
            e.printStackTrace();
        
    
    /**
     * 删除文件
     */
    public void delete(String name, boolean recursive)
        try 
            fs.delete(new Path(name), recursive);
         catch (IOException e) 
            e.printStackTrace();
        
    
    /**
     * 重命名
     */
    public void rename(String source, String dst)
        try 
            fs.rename(new Path(source), new Path(dst));
         catch (IOException e) 
            e.printStackTrace();
        
    

5.test1.java文件创建主函数向hdfs上传文件1.txt

(1)上传文件代码

 (2)运行成功

 (3)网页端查看

6.test1.java文件创建主函数从hdfs下载文件到桌面并命名为hadoop.txt

(1)下载文件代码

 (2)linux桌面查看

7.test1.java文件创建主函数在hdfs的根目录下创建文件夹bhn

(1)创建文件夹代码

(2)网页端查看

8.test1.java文件创建主函数删除hdfs上根目录下的1.txt文件

(1)删除文件代码

 (2)网页端查看

9.test1.java文件创建主函数在hdfs上将bhn重命名为baihongna

(1)重命名文件代码

 (2)网页端查看

 

以上是关于Java API在HDFS上实现文件的上传下载到本地创建文件夹删除文件和重命名文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在FTP上实现文件的上传和下载

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

HDFS Java API使用之读取上传文件

Hadoop——HDFS文件系统的Java API操作(上传下载查看删除创建文件)详细教学

利用JAVA API远程进行HDFS的相关操作

在 Spring Boot API 上实现 JWT 身份验证