HDFS客户端及API操作实验

实验二  HDFS客户端及API操作

实验目的:

1.掌握HDFS的客户端操作,包括上传文件、下载文件、重命名、查看目录等;

2.掌握HDFS的Java API使用,能够利用Java API实现上传、下载等常用操作;

实验内容:

  1. HDFS客户端的使用

已搭建好三节点HDFS的前提下,启动集群并在各自节点实现以下操作:

  1. 在HDFS中创建以自己姓名首字母命名的文件夹(以下以/zs为例)
  2. 将/etc/mandb.conf从本地拷贝至/zs
  3. 本地创建test.txt内容为hello hdfs,并从本地剪切到/zs
  4. 本地创建文件test1.txt,内容为hello Hadoop,并将test1.txt 追加到test.txt文件末尾
  5. 从HDFS下载test.txt文件到本地
  6. 查看/zs文件夹下有哪些文件
  7. 查看test1.txt的文件内容
  8. 将test1.txt文件拷贝至/input目录
  9. 删除/input /test1.txt文件
  10. 通过命令将/zs/test1.txt文件的副本数改为10
  11. 在DataNode节点找到HDFS数据的存储位置,并将文件/zs/test1.txt本地块删除,观察效果
  12. 导出fsimage与editslog文件,观察并解释文件内容

    将其复制到IDLExml文件中,可以清楚地看到

    可见Fsimage中并没有记录块对应的DataNode

    这是因为在集群启动之后,要求DataNode上报数据块信息,并且每隔一段时间再次上报





  1. 未完待续


    利用HDFS的Java API完成以下操作:

(1)在window中配置API环境(下载windows依赖、配置环境变量)并测试

(2)打开IDEA创建Maven工程HDFStest

(3)在pom.xml文件中添加相关依赖(hadoop-client、log4j、junit)

(4)配置log4j.properties文件

(5)创建HDFSClient类

(6)编写myMkdirs()函数,实现在HDFS端创建目录JAVA_姓名拼音首字母缩写,并用单元测试进行测试

(7)编写myUpload()函数,实现将本地文件上传至HDFS,并进行单元测试

(8)编写myDownload()函数,将test1.txt文件下载至本地,并进行单元测试

(9)编写myRename()函数,实现将test1.txt重命名为 mytest1.txt,并进行单元测试

(10)编写myRm()函数,实现将mytest1.txt删除,并进行单元测试

(11)编写myLs()函数,获取根目录(/)下所有文件的详细信息,包括权限、拥有者、所属组、文件大小、修改时间等。(若存在目录则,递归显示目录中的文件)

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

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

相关文章

go写文件后出现大量NUL字符问题记录

目录 背景 看看修改前 修改后 原因 背景 写文件完成后发现: size明显也和正常的不相等。 看看修改前 buf : make([]byte, 64) buffer : bytes.NewBuffer(buf)// ...其它逻辑使得buffer有值// 打开即将要写入的文件,不存在则创建 f, err : os.Open…

Java中线程池相关的七个参数

在Java中,线程池的七个参数是指线程池的相关配置参数,用来控制线程池的行为和性能。这些参数包括: 1. 核心线程数(corePoolSize):线程池中保持的最小线程数,即使线程处于空闲状态,也…

C++进阶篇6---lambda表达式

目录 一、lambda表达式 1.引入 2、lambda表达式语法 二、包装器---function 1.引入 2.包装器介绍 三、bind 一、lambda表达式 1.引入 class Person { public:Person(int age,string name):_age(age),_name(name){} //private://方便后面的举例int _age;string _name…

ROS话题通信基本操作(python)

目录 一、发布 1、实现步骤 2、代码实例 二、接收 1、实现步骤 2、代码实例 三、配置运行 1、修改CMakeLists.txt 2、修改可执行权限 3、运行结果 一、发布 1、实现步骤 1.导包 2.初始化 ROS 节点:命名(唯一) 3.实例化 发布者 对象 4.组织被发布的数据,…

浅谈Django之单元测试

一、什么是单元测试 单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。如果测试通过则说明我们这个函数或功能能够正常工作,如果失败要么测试用例不正确,要么函数有bug需要修复。 二、如何使用单元测试 from django.test imp…

Spring Cloud + Vue前后端分离-第2章 使用Maven搭建SpringCloud项目

第2章 使用Maven搭建SpringCloud项目 Maven两大核心功能: 依赖管理(Jar包管理) 构建项目(项目打包) 使用Eureka搭建注册中心 使用spring initializr创建spring cloud项目 SpringCloud和Maven简介 SpringBoot和Spr…

[ISCTF 2023]——Web、Misc较全详细Writeup、Re、Crypto部分Writeup

前言 由于懒我直接把上交的wp稍加修改拉上来了,凑活看 文章目录 前言Pwntest_ncnc_shell ReverseCreakmeEasyRebabyReeasy_z3mix_reeasy_flower_tea Webwhere_is_the_flag圣杯战争!!!绕进你的心里easy_websitewafrez_ini1z_Ssqldouble_picklewebincludefuzz!恐怖G…

全网最新最全的自动化测试:python+pytest接口自动化-接口测试基础

接口定义 一般我们所说的接口即API,那什么又是API呢,百度给的定义如下: API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口)&#xff0c…

从0到1的跨境电商创业经验分享!个人如何做跨境电商创业?

近年来,跨境电商成为了一种非常流行的创业方式,都知道国内贸易不好做,许多卖家都想通过跨境电商创业,但他们不知道具体的过程,今天龙哥我就分享一下我自己在跨境电商创业总结出来的经验,帮助你在跨境电商领…

【powerjob】定时任务调度器 xxl-job和powerjob对比

文章目录 同类产品对比资源及部署相关资源占用对比:部署方式:xxl job :调度器:执行器: powerjob:调度器:执行器: 总结 背景: 目前系统的定时任务主要通过Spring框架自带的Scheduled注…

buuctf [极客大挑战 2019]Havefun1

解题思路: 小习惯 本题先看看源码或者检查一下,可能这是俺的一个小习惯。 源码里面都看到了php的代码 php代码解析: $cat$_GET[cat]; echo $cat; if($catdog){ echo Syc{cat_cat_cat_cat}; } 1.$ca…

新手村之SQL——分组与子查询

1.GROUP BY GROUP BY 函数就是 SQL 中用来实现分组的函数,其用于结合聚合函数,能根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。 mysql> SELECT country, COUNT(country) AS teacher_count-> FROM teacher…

T-SQL的多表查询

前面讲述过的所有查询都是基于单个数据库表的查询。如果一个查询需要对多个表进行操作,就称为联接查询,联接查询的结果集或结果称为表之间的联接。 联接查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系数据库查询最主要的特征…

听GPT 讲Rust源代码--src/tools(7)

File: rust/src/tools/rust-analyzer/crates/ide/src/inlay_hints/chaining.rs 在Rust源代码中,rust-analyzer/crates/ide/src/inlay_hints/chaining.rs这个文件的作用是生成Rust代码中的链式调用提示。 具体来说,当我们使用链式调用时,例如A…

C语言——深入理解指针(5)

目录 1. sizeof和strlen的对比 1.1 sizeof 1.2 strlen 1.3 sizeof和strlen 的对比 2. 数据和指针题解析 2.1 一维数组 2.2 字符数组 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2,6 2.3 二维数组 3. 指针运算题解析 3.1 例1 3.2 例2 3.3 例3 3.4 例4 3.5 例5 3.6 例…

python中的进制转换和原码,反码,补码

python中的进制转换和原码,反码,补码 计算机文件大小单位 b bit 位(比特) B Byte 字节 1Byte 8 bit #一个字节等于8位 可以简写成 1B 8b 1KB 1024B 1MB 1024KB 1GB 1024MB 1TB 1024GB 1PB 1024TB 1EB 1024PB 进制分类 二进制:由2个数字组成,有0 和 1 pyth…

如何无线桥接路由器,让你的网络覆盖范围变大,做到网络信号无缝连接

你是否希望通过在两个路由器之间创建无线网桥(网络桥接)来扩大网络覆盖范围?好吧,你来对地方了!在当今日益互联的世界,拥有一个强大可靠的网络比以往任何时候都更重要。 无线网桥允许你无线连接两个或多个路由器,有效地扩展网络覆盖范围,并在更大的区域提供无缝的互联…

巧借C++算法实现冒泡排序算法

目录 引言冒泡排序原理具体实现步骤示例代码时间复杂度和稳定性优化可能性结束语 引言 作为计算机专业出身的开发者,以及从事软件开发相关的小伙伴,想必对C语言并不陌生,它是一门非常厉害的编程语言,不仅是基于程序底层的语言&a…

Proteus8.16仿真软件安装图文教程(Proteus 8 Professional)

Proteus8.16 🔧软件安装包下载链接:🔧视频教程🔧1 安装软件解压🔧2 安装🔧3 破解🔧4 汉化 🔧软件安装包下载链接: Proteus8.16软件下载链接 1、本文关于Proteus8.16 SP…

关于“你对SpringCloud的理解”

看看普通人和高手是如何回答这个问题的? 普通人 Spring Cloud 是一套微服务解决方案 它包括配置中心、RPC 通信、服务注册、服务熔断等组件 高手 Spring Cloud 是一套 分布式微服务的技术解决方案 它提供了快速构建分布式系统的 常用的一些组件 比如说配置…