HDFS简易知识理论

网友投稿 395 2022-11-25

HDFS简易知识理论

前言

:是Hadoop中用于数据存储的模块

概述

: 全名为 Hadoop Distributed File System 1. 是Hadoop中用于数据存储的模块(可以存储很大的文件) 2. 在存储数据的时候会将数据进行切块,     每一个块是一个Block,在Hadoop2.0是128M。 3.HDFS会对数据块进行自动备份,默认复本数量是3,但是在伪分布式   下复本数量必须设置为1     4. 复本的放置策略 --- 机架感知策略

优点

文件存储高效而稳定

高效性

HDFS高效的存储是通过计算机集群独立处理请求实现的,因为用户     (一半是后端程序)在发出数据存储请求时,,往往响应服务器正在     处理其他请求,这是导致服务效率缓慢的主要原因。但如果相应服务     器直接分配一个数据服务器给用户,然后用户直接与数据服务器交互     效率会快很多。

稳定性

数据存储的稳定行往往通过"多存几份"的方式实现,HDFS也使用了 这种方式。HDFS也使用了这种方式。HDFS也使用了这种方式。HDF S的存储单位是块(Block),一个文件可能被分为多个块存储在物 理存储器中。因此HDFS往往会按照设定者的要求把数据块复制n份并 存储在不同的数据节点(储存数据的服务器)上,如果一个数据节点 发生故障,数据也不会丢失。

HDFS的节点

HDFS运行在许多不同的计算机上,有的计算机专门用于存储数据,有   的计算机专门用于指挥其他计算机存储数据。这里的计算机我们称之为   节点。     1.命名节点(NameNode)      命名节点(NameNode)是用于指挥其他节点存储的节点。任何一个      “文件系统”(File System,FS)都需要具备根据文件路径映射到文      件的功能,命名节点就是用于存储这些映射信息并提供映射服务的计算      机,在整个HDFS系统中扮演着“管理员”的角色,因此一个HDFS集群中      只有一个命名节点。         2.数据节点(DataNode)      数据节点(DataNode)是用来存储数据块的的节点。当一个文件被命      名节点承认并分块之后将会被存储到被分配的数据节点中去。数据节点      具有存储数据,读写数据的功能,其中存储的数据块比较类似于硬盘中      的“扇区”概念,是HDFS存储的基本单位。        3.副命名节点(Secondary NameNode)     副命名节点(Secondary NameNode)别名“次命名节点”,是命名节点     的“秘书”,这个形容的很贴切,因为它并不能代替命名节点的工作,无论     命名节点是否有能力继续工作。它主要负责分摊命名节点的压力,备份命     名节点的状态并执行一些管理工作,如果命名节点要求它这样做的话,如果     命名节点坏掉了,它也可以提供备份数据以恢复命名节点

HDFS的数据读流程

1. 客户端发起RPC请求访问Namenode的 2. namenode会查询元数据,找到这个文件的存储位置对应的数据块的信息 3.  4. namenode将文件对应的数据块的节点地址的全部或者部分放入一个队列中然后返回 5.  6. client收到这个数据块对应的节点地址 7.  8. client会从队列中取出第一个数据块对应的节点地址,会从这些节点地址中选择一个     最近的节点进行读取      6.将Block读取之后,对Block进行checksum的验证,如果验证失败,说明数     据块产生损坏,那么client会向namenode发送信息说明该节点上的数据       块损坏,然后从其他节点中再次读取这个数据块                7.验证成功,则从队列中取出下一个Block的地址,然后继续读取               8.当把这一次的文件块全部读完之后,client会向namenode要下一批block的地址          9.当把文件全部读取完成之后,从client会向namenode发送一个读取完毕   的信号,namenode就会关闭对应的文件

HDFS的数据写流程

1. 客户端发起RPC请求访问Namenode         2. namenode接收到请求之后,对请求进行验证,例如这个请求中的文件是    否存在,再例如权限验证              3. 如果验证通过,namenode确定文件的大小以及分块的数量,        确定对应的节点(会去找磁盘空间相对空闲的节点来使用),        将节点地址放入队列中返回     4. 客户端收到地址之后,从队列中依次取出节点地址,然后数据块依次放      入对应的节点地址上             5. 客户端在写完之后就会向namenode发送写完数据的信号,        namenode会给客户端返回一个关闭文件的信号     6. datanode之间将会通过管道进行自动的备份,保证复本数量

HDFS的数据删除流程

1. Client发起RPC请求到namenode 2. namenode收到请求之后,会将这个操作记录到edits中,然后将数据    从内存中删掉,给客户端返回一个删除成功的信号     3.客户端收到信号之后认为数据已经删除,实际上数据依然存在datanode上 4.当datanode向namenode发送心跳消息(节点状态,节点数据)的时候,   namenode就会检查这个datanode中的节点数据,发现datanode中的节点   数据在namenode中的元数据中没有记录,namenode就会做出响应,就会命   令对应的datanode删除指定的数据

HDFS的操作指令

hadoop fs -put a.txt /a.txt - 上传文件  hadoop fs -mkdir /hadoopnode01 - 创建目录  hadoop fs -rm /hadoop-2.7.1_64bit.tar.gz - 删除文件  hadoop fs -rmdir /hadoopnode01 - 删除目录  hadoop fs -rmr /a - 递归删除  hadoop fs -get /a.txt /home - 下载  hadoop fs -ls / - 查看  hadoop fs -lsr / - 递归查看  hadoop fs -cat /a.txt - 查看内容  hadoop fs -tail /a.txt - 产看文件的最后1000个字节  hadoop fs -mv /a/a.txt /a/b.txt - 移动或者重命名  hadoop fs -touchz /demo.txt - 创建空文件  hadoop fs -getmerge /a demo.txt - 合并下载

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何利用Mu率压缩对高斯波形进行压缩
下一篇:10月份苹果将会有什么动态呢?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~