Hadoop002架构模型

Block的副本放置策略

  • 机柜中除了放置服务器之外还会放置交换机,每个交换机专门为一台机柜配备,用于设备之间通信。
  • 每台机柜有条线,用于连接交换机,直接从交换机跳到服务器点对点的连接。除了配置交换机,机柜中还有一个电源模块,这个电源模块控制机柜的电源输出。电源模块、交换机与机柜中的服务器组成了一个最小的单元,其中一者换了,机柜也就废了,不能与外界通信。

第一个副本:如果客户端和文件恰巧在集群中的一个节点上,第一个副本就放置在本节点上;如果是集群外提交,则随机挑选一台磁盘不太满、cpu不太忙的节点。
第二个副本:放置在于第一个副本不同的机架的节点上。
第三个副本:与第二个副本相同机架的不同节点。(同机架不同服务器)
更多副本:随机节点
Hadoop架构模型
主从架构
有主节点(主进程)角色(管理者),从节点(进程)角色。

  • NameNode:保存元数据 单点(只能有一个NameNode)
  • DataNode:保存数据真实信息 会有多个从节点
    保持心跳,实时汇报
    客户端先与主节点交互拿到信息直接去找从节点。
    就比如去市区图书馆找书先咨询管理员书籍在哪个位置然后自己去找,管理员不陪同。
  • 假定上传了一个文件到集群中,那么该文件肯定会被切割成块,散落在集群中的节点中;如果我重复上传很多文件,那么这些文件会分别都被切割成块,散落在集群的节点中。每个文件的块大小、块数量不一致,而服务器的数量是固定的,那么每台服务器上有不同的块,代表不同的文件。对于大的文件来说可能一台服务器就完全服务于该文件,而对于小的文件来说,服务器可能还有空余的存储空间存储别的文件,所以是几个文件共享这一台服务器。如何管理服务器中庞大的数据信息?

管理者:主节点的作用。
元数据:描述数据的数据。属性

  • 这个文件叫什么,在文件系统的哪个目录下,一共对应多少个块,每块的id是多少,每块的大小是多少,哪些用户可以访问,都放在了哪些节点下?
    这些信息在hdfs中会专门准备一台服务器来跑一个进程来记录这些信息。

即这些元数据专门交给一个节点去做,命名为NameNode,并且在一个架构中只能对应一个NameNode,它是一个单节点称为主节点。(单点故障)
一个NameNode要掌管所有上传到集群中数据的元数据。

从节点:它存活于除NameNode所在节点的其他所有节点之中。它保存block块的真实的数据即文件的真实数据。文件所切割的保留真实数据的块由DataNode这个进程来进行管理。

集群中有一个NameNode节点,用于保存所有块的元数据。而其他的节点每个上面有一个DataNode进程来管理block块,即把文件分割给一个block块就会给一个服务器DataNode来维护数据。
DataNode与NameNode关系:

  • DataNode与NameNode保持心跳,并且DataNode向NameNode提交Block列表信息;是一种主从的关系。
  • 心跳是指每隔一段时间就进行ping通,DataNode向NameNode提交Block列表信息。
    即块以及块的副本分散在哪些服务器之上是由DataNode统计出来实时向NameNode汇报的。(动态统计和汇报)
  • 因为硬件可能会出现故障,某一个DataNode节点宕机是常态,所以需要由DataNode实时汇报,使NameNode一直保存真实的可用的节点信息。

HdfsClient先与NameNode交换元数据信息。
先与管理者联系

  • client若将某个文件上传到某个路径下,NameNode会先判断这个路径下是否有这个文件,没有的话则可以上传,等于帮客户端创建一个目录结构。若客户端想要读取某个文件,NameNode也会先判断这个路径下是否有这个文件,若有这个文件,NameNode会告诉客户端这个文件有多少块存在于哪些节点之上。客户端拿到这些信息,会根据这个信息列表直接与列表中的DataNode交互。

HdfsClient再与DataNode交换文件Block数据。

  • 所以NameNode是一个管理节点,维护一个目录树的结构。

DataNode利用服务器本地文件系统存储数据块

  • DataNode所在节点的系统的文件系统来存储block块,这些块最终以文件的形式存储在每个节点的本机文件系统中,它不会单独的再创建系统来存储,而是借用服务器所在的文件系统来操作。
  • 比如有台计算机有个DataNode进程,这个计算机有自己的文件系统,这台计算机收到一个块,它把这个块以文件的形式存储在计算机的某个目录之下。如果我把一个文件上传到这个节点之后,首先它会被切割成若干个块,然后如果想要查看这个块的位置信息,找到这个块之后会发现都是以文本的形式存在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值