作者: | 来源:互联网 | 2023-08-01 16:11
机柜意识
机柜意识
别称:机架感知、Rack awareness
含义:数据块会优先储存在离NameNode近的机器或者说成离NameNode机架近的机器上
特点:1)如果一个机架出问题,不会影响数据读写
2)写入数据的时候会写到不同机架的DataNode中
3)MapReduce会根据机架获取离自己比较近的网络数据
4)一个NameNode尽量将一个块的多个副本放在多个安装点(即机柜)上以提高容错能力。每个节点都知道它的机柜ID
5)HDFS允许管理员决定一个节点属于哪个安装点
作用:1)可以带来性能和安全性的提升
2)平衡容错能力与网络流量
机架与数据节点
特点:1)集群被分配给不同机架
2)每个机架都拥有多个DataNode节点
Hadoop的网络距离
特点:1)同一节点上的进程带宽大于同一机架上的不同节点带宽
2)同一机架上的不同节点带宽大于同一数据中心中不同机架上的节点带宽
3)同一数据中心中不同机架上的节点带宽大于不同数据中心中的节点
条件:数据中心d1机架r1中的节点n1,表示为/d1/r1/n1
公式:1)同一节点上的进程
distance(/d1/r1/n1,/d1/r1/n1)=0
2)同一机架上的不同节点
distance(/d1/r1/n1,/d1/r1/n2)=2
3)同一数据中心中不同机架上的节点
distance(/d1/r1/n1,/d1/r2/n3)=4
4)同一数据中心中不同机架上的节点
distance(/d1/r1/n1,/d2/r3/n4)=6
副本读取策略
原理:1)如果该Block的一个副本存在于客户端,则客户端优先从本地读取该数据块
2)如果该Block的一个副本与客户端在同一个机架上,且没有一个副本存放在客户端,则客户端优先读取这个同机架上的副本
否则客户端优先读取同机器的副本,失败的情况下然后再优先考虑这个同机架上的副本
3)如果该Block既没有一个副本存在客户端,又没有一个副本与客户端在同一个机架上,则随机选择一个DataNode节点作为优先节点
方法:1)如果同一个机架就有这个副本,就直接读这个
2)如果HDFS集群跨越多个数据中心,客户端首先读本地数据中心的副本
副本放置策略
原理:1)第一个副本:放置在上传文件的DataNode
2)第二个副本:放置在与第一个副本不同的机架的节点上
3)第三个副本:与第二个副本相同机架的节点
4)更多副本:随机节点
回收站
HDFS文件删除恢复机制
原理:1)当用户或应用程序删除某个文件时,这个文件并没有立马从HDFS中删除。实际上,HDFS会将这个文件重命名转移到/trash文件夹
2)仅仅要文件还在/trash 文件夹中,该文件就能够被迅速地恢复
3)文件在/trash中保存的时间是可配置的。当超过这个时间时,Namenode就会将该文件从名字空间中删除。删除文件会使得该文件相关的数据块被释放
回收站
路径:在HDFS上的/user/$USER/.Trash/Current/
参数:1)fs.trash.interval
设置保留时间为1440(即为1天)