当前位置: 首页 > news >正文

hdfsClient_java对hdfs进行上传、下载、删除、移动、打印文件信息尚硅谷大海哥

Java可以通过Hadoop提供的HDFS Java API来控制HDFS。通过HDFS Java API,可以实现对HDFS的文件操作,包括文件的创建、读取、写入、删除等操作。

具体来说,Java可以通过HDFS Java API来创建一个HDFS文件系统对象,然后使用该对象来进行文件的操作。例如,可以使用FileSystem类的create()方法来创建一个新的文件,使用open()方法来打开一个文件进行读取,使用write()方法来向文件中写入数据,使用delete()方法来删除一个文件等。

此外,Java还可以通过HDFS Java API来管理HDFS的元数据信息,包括文件的权限、所有者、修改时间等信息。通过FileSystem类的setPermission()、setOwner()、setTimes()等方法,可以对文件的元数据信息进行修改。

前提:
配置HADOOP_HOME环境变量

配置Path环境变量

Maven依赖成功导入

(这三个不会的评论区评论我发资料给你)

代码:

package com.huangyongsheng.hdfs;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
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 org.apache.hadoop.io.IOUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;/*** 客户端代码常用套路* 1,获取客户端对象* 2.执行操作* 3.关闭资源* HDFS zookeeper*/
public class HdfsClient {private FileSystem fs;@Beforepublic void init() throws URISyntaxException, IOException, InterruptedException {URI uri = new URI("hdfs://hadoop102:8020");Configuration configuration = new Configuration();String user="huangyongsheng";fs = FileSystem.get(uri, configuration, user);}@Afterpublic void close() throws IOException {fs.close();}@Test//创建目录public void testmkdir() throws URISyntaxException, IOException, InterruptedException {fs.mkdirs(new Path("/xiyuo/huaguoshan2"));System.out.println("目录创建成功");}@Test//上传;是否删除原数据;是否覆盖;原数据路径;目的路径public void testPut() throws IOException {fs.copyFromLocalFile(false,false,new Path("D:\\sun_wu_kong.txt"),new Path("/xiyuo/huaguoshan"));}@Test//下载;是否删除原数据;hdfs文件路径;win路径;是否校验(不用)public void  testGet() throws IOException {
//        fs.copyToLocalFile(false,new Path(""),new Path(""));InputStream in =fs.open(new Path("/dancijishu/wcinput/word1.txt"));IOUtils.copyBytes(in,System.out,4096,false);IOUtils.closeStream(in);}@Test//删除;删除文件,目录,非空目录(需要参数true)是否递归删除public void testRm() throws IOException {fs.delete(new Path(""),false);}@Test//文件的更名和移动public void testmv() throws IOException {fs.rename(new Path("/xiyuo/huaguoshan2"),new Path("/xiyuo/huaguoshan_namechanged"));// rename可以移动文件并改名      原文件路径(路径里的文件)                   一个新的路径(路径里的文件)}@Test//获取文件详情public void fileDetail() throws IOException {//获取所有文件信息                  迭代器RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"),true);while (listFiles.hasNext()){LocatedFileStatus fileStatus = listFiles.next();System.out.println("===================="+fileStatus.getPath()+"====================");System.out.println(fileStatus.getPermission());System.out.println(fileStatus.getOwner());System.out.println(fileStatus.getGroup());System.out.println(fileStatus.getLen());System.out.println(fileStatus.getModificationTime());System.out.println(fileStatus.getReplication());System.out.println(fileStatus.getPath().getName());}}
}

http://www.lryc.cn/news/237843.html

相关文章:

  • 【前端学java】语法练习-工具类的封装(13)
  • Git 基本操作
  • Oracle-分析函数(累计求和,排序等)
  • 4本期刊被踢!11月SCI/SSCI目录已更新
  • JS中Cookie的基本使用
  • 关闭windows防火墙命令
  • excel-gen.js 导出excel 功能
  • 键鼠自动化2.0展示
  • html主页框架,前端首页通用架构,layui主页架构框架,首页框架模板
  • SDWAN厂家排名
  • 【STM32】CRC(循环冗余校验)
  • 04.webpack中css的压缩和抽离
  • Vue 3 和 Spring Boot 3 的操作流程和执行步骤详解
  • 获取所有非manager的员工emp_no
  • STM32存储左右互搏 SPI总线FATS文件读写FLASH W25QXX
  • Sentinel 熔断规则 (DegradeRule)
  • 嵌入式Linux开发面试题和答案
  • Linux安装Mysql详细教程(两种安装方法)
  • 用向量数据库Milvus Cloud搭建GPT大模型+私有知识库的定制商业文案助手
  • redis---非关系型数据库
  • Java WebSocket 获取客户端 IP 地址
  • 【HarmonyOS】低代码平台组件拖拽使用技巧之页签容器
  • Linux fork和vfork函数用法
  • Oracle Data Redaction和Oracle Data Pump
  • python django 小程序图书借阅源码
  • CI/CD --git版本控制系统
  • CSS中2种复合选择器
  • 【Skynet 入门实战练习】开发环境搭建 | 运行第一个项目 | debug console 简单使用
  • 【探索嵌入式虚拟化技术与应用】— 虚拟化技术深入浅出自学系列
  • MIB 6.1810实验Xv6 and Unix utilities(5)find