温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

HDFS的容错和文件的读写

发布时间:2020-07-07 22:39:52 阅读:1135 作者:厦小岗 栏目:开发技术
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

大数据交流群QQ:494721467

HDFS容错:

如何使文件体统能够容忍节点故障,并且不丢失任何的数据也就是HDFS的容错机制

1、心跳机制:

namenode 和datanode是维护心跳的检测。可能网络故障,导致namenode接收不到datanode的心跳包,namenode就不会将任何新的I/O操作派发给那个

Datanode,所以datanode上的数据是无效的。namenode会检测到文件块的副本数目小于设置值,如果小于就自动开始复制新的副本并分发到其他的datanode

节点上。

2、检查文件的块的完整性

HDFS会检索到文件或者某个节点块的大小是否一致,不一致,会从其他的Datanode节点上获取该快的副本

3、集群的负载均衡

节点的丢失或者增加会使数据分布不均,当某个Datanode节点的空闲空间大于一个临界点值时,HDFS会自动从其他节点把数据迁移过来

4、namenode上的FSlmage 和Edit log文件

FSlmage 和Edit log文件是HDFS上的核心数据结构。当他们损坏HDFS将会失效

5、文件的删除

删除一个文件,并不会马上从namenode上移动,设置的时间由hdfs-site.xml问价的配置,fs.trash.interval决定设置时间(时间单位为秒)

-------------------------------------------------------------------------

HDFS读取文件和写入文件

1、hdfs会将文件的切片成块的存储到datanod各个节点中,而文件的数据块的布局是由namenode和hdfs-site.xml中配置dfs.replication一起决定的。

dfs.replication表示该文件在hdfs中的副本数,它默认为3。

2、hdfs客户端想要读取文件,首先要访问namenode,并告诉它要读取的文件,在这之前,hdfs会对客户的身份信息进行验证:一种是通过信任的客户端,

由其指定的用户名,另一种是通过kerberos等强制验证机制来完成。访问文件要检查文件的所有者和访问权限。如果文件存在用户对它有访问权限,

nanmenode会提供文件的信息及块的datanode列表。hdfs客户端就可以访问最合适的datanode,直到文件hdfs动关闭文件流

写入文件:

hdfs客户端通过hdfs相关的api发送请求,打开一个要写入的文件,这个请求将会被namenode接收到,并建立该文件的元数据,但新建的文件元数据和任何

数据块没有关联。客户端收到提示成功打开文件时,就开始往里面写数据,当客户端将数据写入流时。数据会被拆成数据包,并将数据包保存在内存的队

列中。客户端有个独立线程,它从队列中读取数据包,并向namenode请求一组datanode列表,以便写入下个数据块的多个副本。hdfs直接连接到列表,从

而建立了数据块的管道,写入到磁盘中。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×