Hadoop Java API操作 及读取序列化文件(04-05-06)

    针对于04-05-06班级整合。

1.创建java项目

2.修改pom.xml文件

添加依赖

<dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.1.4</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.30</version></dependency>
</dependencies>

3.创建一个名为HdfsTest类,在类中编写单元测试代码测试API中的每个方法

(1)查看HDFS根目录下的文件或子目录,并将名称打印在控制台

//单元测试  每个操作放在一个测试方法中,  选中方法名---》右击  运行testList()
@Test
public void testList() throws Exception{//1.创建配置对象Configuration conf = new Configuration();//2.获取文件系统对象  yt启动集群的用户名// FileSystem fs = FileSystem.get(conf);FileSystem fs = FileSystem.get(new URI("hdfs://master:8020") ,conf,"yt");//3.获取HDFS根目录下的子目录和文件FileStatus  []files =fs.listStatus( new Path("/"));//4.循环所有的filesfor(FileStatus f:files){//判断是文件还是目录if(f.isFile()){System.out.println(  "f:  "+f.getPath().getName() );}else {System.out.println(" d:    "+f.getPath().getName());}}//关闭资源fs.close();}

控制台输出的结果:

(2)创建目录

//创建目录
@Test
public void testMkdirs() throws Exception{//1.创建配置对象Configuration conf = new Configuration();//2.获取文件系统对象  yt启动集群的用户名FileSystem fs = FileSystem.get(new URI("hdfs://master:8020") ,conf,"yt");fs.mkdirs(new Path("/hdfs/2306"));//关闭资源fs.close();}

测试结果:

(3)删除非空目录

//删除文件或目录
@Test
public void testDelete() throws Exception{//1.创建配置对象Configuration conf = new Configuration();//2.获取文件系统对象  yt启动集群的用户名FileSystem fs = FileSystem.get(new URI("hdfs://master:8020") ,conf,"yt");fs.delete(new Path("/output-2302-order"),true);//关闭资源fs.close();}

(4)文件上传

//文件上传
@Test
public void testCopyFromLocalFile() throws Exception{//1.创建配置对象Configuration conf = new Configuration();//2.获取文件系统对象  yt启动集群的用户名FileSystem fs = FileSystem.get(new URI("hdfs://master:8020") ,conf,"yt");fs.copyFromLocalFile(new Path("D:\\software\\apache-maven-3.8.6.rar"),new Path("/hdfs/2306/"));//关闭资源fs.close();}

(5)文件下载

//文件下载
@Test
public void testCopyToLocalFile() throws Exception{//1.创建配置对象Configuration conf = new Configuration();//2.获取文件系统对象  yt启动集群的用户名FileSystem fs = FileSystem.get(new URI("hdfs://master:8020") ,conf,"yt");fs.copyToLocalFile(new Path("/bigdata/order.txt"),new Path("D:\\software\\"));//关闭资源fs.close();}

(6)读取HDFS上的序列化文件,将数据保存到D:\\software\\raceData.txt

//读取序列化文件中的数据保存到本次磁盘
@Test
public void testSequenceFileRead() throws Exception{//1.创建配置对象Configuration conf = new Configuration();//2.获取文件系统对象  yt启动集群的用户名FileSystem fs = FileSystem.get(new URI("hdfs://master:8020") ,conf,"yt");SequenceFile.Reader reader = new SequenceFile.Reader(fs,new Path("/ouput-2301-select/part-m-00000"),conf);//创建文件对象File file = new File("D:\\software\\raceData.txt");//创建字节流对象OutputStream  out = new FileOutputStream(file);//创建缓冲字符输出流对象BufferedWriter  bw =new BufferedWriter( new OutputStreamWriter(out) );Text key =new Text();Text val =new Text();while(  reader.next(key,val)   ){bw.write(  key.toString()+"\t" +val.toString()  );bw.newLine();}bw.flush();//关闭资源bw.close();out.close();fs.close();}

代码中的part-m-0000文件,需要完成 --筛选日志并生成序列化文件
           https://blog.csdn.net/lydia88/article/details/138184788

才能得到日志化文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/12796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux网络编程】IO多路转接之poll

poll 1.poll初始2.poll函数接口3.poll服务器4.poll的优点缺点 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.poll初始 poll也是一种linux…

Unity设计模式之工厂模式

什么是工厂模式&#xff1f; 工厂是一种创建型设计模式。通俗来讲就是提供一种封装对象创建的方式&#xff0c;将对象的创建和使用区分开。就是Unity里面通常用到的创建和管理对象。 工厂模式有什么优点&#xff1f; 1、封装对象的创建方式&#xff0c;使其更加灵活、易于管理…

【教学类-55-04】20240515图层顺序挑战(四格长条纸加黑色边框、4*4、7张,不重复5400张,16坐标点颜色哈希值去重、保留7色)

背景需求&#xff1a; 前文实现了7张色彩纸条加上黑色边框的需求。 【教学类-55-02】20240512图层顺序挑战&#xff08;四格长条纸加黑色边框、4*4、7张 、43200张去掉非7色有23040张&#xff0c;哈希算法快速去重剩余1221张&#xff09;-CSDN博客文章浏览阅读1k次&#xff0…

GPT-4o模型介绍和使用方法

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

9个优质免费视频素材网站推荐丨2024年最新资源合集

在短视频火爆的时代&#xff0c;高清、无水印、可商用的视频素材变得尤为重要。下面是我精心整理的9个常用免费视频素材网站&#xff0c;适合各类视频创作者。希望你能找到满意的素材&#xff01; 一、视频素材 1. 蛙学府 优点&#xff1a;丰富的正版商用素材&#xff0c;涵盖…

AI 绘画神器 Fooocus 高级用法:设置、风格、模型、高级设置

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 大家好&#xff0c;我是水滴~~ 本文精选了一系列高级技巧和细致调整&#xff0c;旨在提升 Fooocus 用户在利用 Stable Diffusion 模型进行图像生成时的…

vue使用marked和highlight.js实现代码高亮效果

marked是对markdown进行解析的插件&#xff0c;它可以把markdown语法解析成html语法&#xff0c;从而实现页面效果&#xff0c;而highlight.js是对解析出的代码实现高亮效果 效果&#xff1a; 安装&#xff1a;避免踩我走的坑&#xff0c;安装尽量按照这个版本安装 npm install…

Linux进程——进程地址空间

前言&#xff1a;在讲完环境变量后&#xff0c;相信大家对Linux有更进一步的认识&#xff0c;而Linux进程概念到这也快接近尾声了&#xff0c;现在我们了解Linux进程中的地址空间&#xff01; 本篇主要内容&#xff1a; 了解程序地址空间 理解进程地址空间 探究页表和虚拟地址空…

matlab使用教程(71)—控制坐标区布局

1.与位置相关的属性和函数 有几个属性和函数可用于获取和设置坐标区的大小与位置。下表摘要显示了这些属性和函数。 函数或属性描述 OuterPosition 属性 使用此属性可以查询或更改坐标区的外边界&#xff0c;包括标题、标签和边距。要更改外边界&#xff0c;请将此属性指定为…

MySQL、JDBC复盘及规划

数据库仍有习题尚未做完&#xff0c;策略从一天做完改为每天5到10题&#xff0c;以此达到掌握和复习的效果&#xff0c;JDBC的六部仍需每天练习&#xff0c;从明天开始正式进行JavaWeb的学习&#xff0c;预计持续到七月中旬&#xff0c;还会完成一个书城项目&#xff0c;六月底…

Vue 快速入门:Vue初级

语法规则 前端渲染 渲染有几种方式&#xff1a;原生js、js模板、Vue模板语法 原生js 使用字符串拼接 js模板语法 Vue.js 模板语法概述 Vue.js 是一个用于构建用户界面的渐进式框架&#xff0c;其模板语法非常灵活和直观。Vue 的模板语法基于 HTML&#xff0c;可以通过指令…

Java为什么会成为现在主流的编程语言

Java为什么会成为现在的主流语言 前言一、Java语言概述Java是什么为什么大多数人会选择从事Java为什么从事Java的工作者数量从年递减 二、Java语言的特点简单性面向对象分布式&#xff08;微服务&#xff09;健壮性安全性体系结构中立可移植性解释型高性能多线程动态性 三、Jav…

UDP多对多组播通信

广播和多播仅应用于UDP。TCP是一个面向连接的协议&#xff0c;TCP一定是点对点的&#xff0c;一点是两个主机来建立连接的&#xff0c;TCP肯定是单播。只有UDP才会使用广播和组播。 如下示例实现一个UDP多对多的组播通信&#xff0c;进程中有收、发两个线程&#xff0c;分别表…

6款电脑精选工具软件推荐!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 1.IP地址查看工具——纯真ip数据库 纯真IP数据库是一个易于操作的IP地址查询工具&#xff0c;它允许用户通过输入IP地址来查询其对应的地理位置…

Django创建网站的地基

相关文档 1、为新网站创建一个文件夹&#xff08;这里是&#xff1a;locallibrary&#xff09; D:\django>mkdir locallibraryD:\django>cd locallibraryD:\django\locallibrary>dirVolume in drive D is 新加卷Volume Serial Number is B68C-03F7Directory of D:\dj…

【Uniapp】简易封装提示框showToast/showModal

组件 // 封装提示框 export const showModal (content, showCancel false, title "提示") > {return new Promise((resolve, reject) > {uni.showModal({title: title,content: content,showCancel: showCancel,success: (res) > {resolve(res);},fail:…

结合多模态 AI 谷歌展示 AR 眼镜原型机;Meta 被曝开发带摄像头的 AI 耳机丨 RTE 开发者日报 Vol.204

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」&#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

如何修改android 项目显示的app名

修改vlaues下的string.xml文件 修改这个标签中的内容就行

国产银河麒麟V10SP1系统安装Qt和MySql步骤

安装软件&#xff1a;准备好Kylin-Desktop-V10-SP1-Release-hwe-2107-x86_64.iso和qt-opensource-linux-x64-5.14.2.run 安装步骤&#xff1a; 1、VMWare软件中新建一个虚拟机并安装Kylin-Desktop-V10-SP1-Release操作系统&#xff0c;安装时候输入密码的地方记得要用英文&am…

“网络安全新纪元:等保2.0的详细解读与实践”

网络安全等级保护基本要求》&#xff08;等保2.0&#xff09;于2019年6月发布&#xff0c;是我国网络安全等级保护制度的一项重要标准。等保2.0主要针对关键信息基础设施的网络安全保护&#xff0c;对数据安全和个人信息保护提出了更高的要求。本文将对等保2.0进行详细解读&…