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.循环所有的files
    for(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

才能得到日志化文件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

近几年上门按摩市场为何如此火爆,有哪些功能?

近几年上门预约推拿按摩市场为何如此火爆&#xff0c;这个融合了休闲、保健与养生的行业&#xff0c;其消费频率高且受众广泛&#xff0c;不受任何限制。 而在按摩服务类系统平台中&#xff0c;小程序以其轻便与易用性脱颖而出。用户只需轻松一扫&#xff0c;便能迅速进入应用&…

UART中的DMA数据处理过程

一、DMA简介 DMA (Direct Memory Access) &#xff0c;直接内存存储器&#xff0c;使用它在做数据传输时能够大大减轻CPU的负担。 DMA&#xff0c;全称 Direct Memory Access&#xff0c;即直接存储器访问。用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。D…

R语言学习笔记

学习资料&#xff1a; 菜鸟教程&#xff1a;https://www.runoob.com/r/r-setup.html 1、查看 R 包的安装目录.libPaths() 查看已安装的包&#xff1a;library() search()函数可以输出当前加载的环境&#xff1a; 2、利用conda创建新的环境&#xff0c;并安装包&#xff08;…

经验分享智能产品从0到1全流程

大家好&#xff0c;今天继续分享文章&#xff0c;这篇文章在网络上搜索资料时&#xff0c;有感而发&#xff0c;分享一个智能产品从0到1的整个生命周期中需要经历哪些阶段&#xff0c;我这里以开发一个mini补光灯为例&#xff0c;深入探索各个阶段可能涉及的具体活动和考虑事项…

鸿蒙OS开发:【一次开发,多端部署】(应用UX设计原则)

应用UX设计原则 设计原则 当为多种不同的设备开发应用时&#xff0c;有如下设计原则&#xff1a; 差异性 充分了解所要支持的设备&#xff0c;包括屏幕尺寸、交互方式、使用场景、用户人群等&#xff0c;对设备的特性进行针对性的设计。 一致性 除了要考虑每个设备的特性…

EE-SX670 槽型光电开关 5MM 限位检测感应器 使用案例

EE-SX670是一款槽型光电开关&#xff0c;也被称为U形传感器或限位检测感应器。它是光电传感器中的一种&#xff0c;通过检测物体是否插入其感应槽来触发开关。这种传感器通常用于自动化生产线上的位置检测、对象计数以及安全设备中的运动检测。 EE-SX670作为一款高性能的光电传…

智能文档处理:解析文档场景下多模态大模型的应用与研究前沿

解析文档场景下多模态大模型的应用与研究前沿 一、TextIn 文档解析技术1. 现有大模型文档解析问题2. 文档解析技术背景3. TextIn 文档解析技术架构4. 版面分析关键技术 Layout-engine 二、TextIn 文本向量化技术三、TextIn.com Text Intelligence 一、TextIn 文档解析技术 hell…

十二.吊打面试官系列-JVM优化-深入JVM内存模型

JVM内存模型 1.JVM的组成 整个JVM组成由 &#xff1a;运行时数据区 &#xff0c; 类加载子系统 &#xff0c; 执行引擎 &#xff0c; 本地方法库 几部分组成 上面是Java7的内存模型&#xff0c;Java8以后做了一些调整&#xff0c;把方法区变成了元空间&#xff0c;元空间不在…

Blender雕刻建模流程

1.构形 先构造一个大致相像的外形 可使用的方法包含 -多边形&#xff1a;表面细分&#xff0c;布尔 -曲线&#xff1a;曲线倒角 -融球&#xff08;使用较少&#xff09; -曲面&#xff08;使用较少&#xff09; 构形之后的准备 -应用缩放 -应用修改器 -曲线转网格 1.1…

【BOSS直聘爬取系统功能介绍】

完整代码关注公众号 &#xff1a; 爬取网站&#xff1a;BOSS直聘&#xff1a;https://www.zhipin.com/ 难点 1. boss直聘不论什么岗位都只会展示10页数据&#xff0c;就算在网页里加到了11&#xff0c;内容也会和10一样。 2.多次访问会有验证码需要登录&#xff0c;这部分需…

3SRB2516-ASEMI适配大功率充电桩3SRB2516

编辑&#xff1a;ll 3SRB2516-ASEMI适配大功率充电桩3SRB2516 型号&#xff1a;3SRB2516 品牌&#xff1a;ASEMI 封装&#xff1a;SGBJ-5 正向电流&#xff08;Id&#xff09;&#xff1a;25A 反向耐压&#xff08;VRRM&#xff09;&#xff1a;1600V 正向浪涌电流&…

【3dmax笔记】028:倒角的使用方法

一、倒角描述 在3dmax中创建倒角效果可以通过多种方法实现,以下是几种常见的方法: 使用倒角修改器。首先创建一个图形(如矩形和圆),然后对齐它们,将它们转化为可编辑样条线,并附加在一起,选择要倒角的边缘,然后使用倒角修改器来调整高度、轮廓等参数。使用倒角剖面修…

听劝!普通人千万别随意入门网络安全

一、什么是网络安全 网络安全是一种综合性的概念&#xff0c;涵盖了保护计算机系统、网络基础设施和数据免受未经授权的访问、攻击、损害或盗窃的一系列措施和技术。经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”…

校园防欺凌平台

校园霸凌事件很难被发现&#xff0c;发现者又可能迫于威胁而不敢告发&#xff0c;被霸凌者又因各种原因而选择忍耐&#xff0c;所以&#xff0c;如果能够在发生校园霸凌的时候&#xff0c;做出及时的预警&#xff0c;也许能够拯救挽回无数个家庭。本平台结合防欺凌设备&#xf…

【js刷题:数据结构链表之设计链表】

设计链表 一、题目二、题解 一、题目 二、题解 // 定义节点类&#xff0c;每个节点都有一个值和一个指向下一个节点的引用 class LinkNode{constructor(val,next){ // 构造函数&#xff0c;接收节点值和下一个节点的引用this.valval // 节点的值this.nextnext // 指…

查看Linux服务器的硬盘占用情况

查看Linux服务器的硬盘占用情况 一、查看各分区的使用情况和磁盘挂载1、查看磁盘分区使用和磁盘挂载2、结果解释&#xff08;1&#xff09;列名解释&#xff08;2&#xff09;各系统解释 二、查看一个目录及其所有子目录中文件的总占用大小1、查看指定目录的总大小2、列出目录下…

山东齐鲁文化名人颜廷利:汉语自媒体里面的真正文字智慧

在这个数字技术日新月异的时代&#xff0c;大数据和人工智能等技术的兴起已经深刻地改变了信息的传播方式。特别是随着自媒体的兴起&#xff0c;传统的物质形态的报刊杂志已迅速转变为无形的知识与智慧的流动&#xff0c;这种转变不仅改变了信息的传递手段&#xff0c;更释放出…

GIT基础02 多机器协作等命令

前言 首先我们知道git给我们提供了分支管理的功能 我们一般使用master分支作为线上环境,master分支一般是一个稳定的分支 我们通常是会创建一个其他分支进行开发,这样不会影响线上的机器运行 如果没有git提供这样的分支功能,就无法做到这一套了 指令学习 假设软件出现问题咋办…

SWAT模型高阶应用暨SWAT模型无资料地区建模、不确定分析及气候、土地利用变化对水资源与面源污染影响分析

原文链接&#xff1a;SWAT模型高阶应用暨SWAT模型无资料地区建模、不确定分析及气候、土地利用变化对水资源与面源污染影响分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247604401&idx4&snd2d39846dce07bee765c820de1cf92f3&chksmfa821956cdf5904…

长期的图片活码怎么做?在线制作图片活码的方法

现在通过扫描二维码来查看内容的方式&#xff0c;在日常生活中越来越常见&#xff0c;其中扫码看图就是很常用的一种方式。在很多的公共场所或者宣传单页上&#xff0c;扫码后即可查看相关的图片信息&#xff0c;从而获取我们需要的内容&#xff0c;那么在电脑上将图片生成二维…