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

首先,启动Hadoop集群服务

然后在浏览器访问Hadoop,点击Browse the file system 查看HDFS文件系统的目录

可以看到目前HDFS文件系统的目录是空的,没有任何的文件和文件夹,下面开始今天的API操作

一、创建Maven项目

首先,打开IDEA,点击新建项目,在左侧中选择Maven,然后直接点击next

设置项目名称,点击Finish

点击右下角的 Enable Auto-Import(自动导入Jar包文件),一个空的Maven项目就创建完毕啦

二、导入依赖

首先编辑pom.xml(Maven项目的核心文件)文件,添加如下内容,导入依赖(所需jar包)

org.apache.hadoop

hadoop-common

2.7.4

org.apache.hadoop

hadoop-hdfs

2.7.4

org.apache.hadoop

hadoop-client

2.7.4

junit

junit

4.12

IDEA会自动保存文件并且导入依赖包,点击右侧的Maven,展开Dependencies,可以看到四个依赖包以及导入进来了

三、初始化

我们通过junit来进行测试,首先创建一个类,添加如下内容

public class JavaAPI {

// 可操作HDFS文件系统的对象

FileSystem hdfs = null;

// 测试方法执行前执行,用于初始化操作,避免频繁初始化

@Before

public void init() throws IOException {

// 构造一个配置参数对象,设置一个参数:要访问的HDFS的URI

Configuration conf = new Configuration();

// 指定使用HDFS访问

conf.set(“fs.defaultFS”,“hdfs://hadoop01:9000”);

// 进行客户端身份的设置(root为虚拟机的用户名,hadoop集群节点的其中一个都可以)

System.setProperty(“HADOOP_USER_NAME”,“root”);

// 通过FileSystem的静态get()方法获取HDFS文件系统客户端对象

hdfs = FileSystem.get(conf);

}

// 测试方法执行后执行,用于处理结尾的操作,关闭对象

@After

public void close() throws IOException {

// 关闭文件操作对象

hdfs.close();

}

}

注意,上面代码中的参数**“hdfs://hadoop01:9000”**是hadoop配置文件中core-site.xml的配置信息,不记得的可以翻看我以往的hadoop配置文章

四、HDFS代码操作

(1)上传文件到HDFS文件系统

@Test

public void testUploadFileToHDFS() throws IOException {

// 待上传的文件路径(windows)

Path src = new Path(“F:/HDFS/test.txt”);

// 上传之后存放的路径(HDFS)

Path dst = new Path(“/test.txt”);

// 上传

hdfs.copyFromLocalFile(src,dst);

System.out.println(“上传成功”);

}

我在F盘的HDFS文件夹下面创建了个test.txt文本

运行一下测试方法,文件上传成功了

(2)从HDFS下载文件到本地

@Test

public void testDownFileToLocal() throws IOException {

// 待下载的路径(HDFS)

Path src = new Path(“/test.txt”);

// 下载成功之后存放的路径(windows)

Path dst = new Path(“F:/HDFS/test1.txt”);

// 下载

hdfs.copyToLocalFile(false,src,dst,true);

ystem.out.println(“下载成功”);

}

运行一下,下载成功

(3)创建目录

@Test

public void testMkdirFile() throws IOException {

// 待创建目录路径

Path src = new Path(“/HDFS”);

// 创建目录

hdfs.mkdirs(src);

System.out.println(“创建成功”);

}

运行测试方法,创建成功

(4)重命名

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
Qxd-1715311969687)]

[外链图片转存中…(img-sc1Lmfam-1715311969688)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值