大数据学习之四HDFS流程图解,网络拓扑,机架感知

mac2024-10-15  74

大数据学习之四 HDFS流程图解,网络拓扑,机架感知

HDFS读操作HDFS写操作网络拓步机架感知(副本节点选择)

HDFS读操作

流程解析:

客户端(client)向NameNode请求上传文件,NameNode检查目标文件是否已经存在,父目录是否已经存在。NameNode返回是否可以上传文件。客户端请求第一个block(块,默认128MB)要上传到哪几个DataNode上。NameNode返回3个DataNode节点,分别为datanode1,datanode2,datanode3。客户端请求datanode1上传数据,datanode1收到请求会继续调用datanode2,然后datanode2再继续调用datanode3,将这个通信管道建立完成datanode1,datanode2,datanode3逐级应答客户端客户端开始往datanode1上传输第一个block(先从磁盘读取数据放到一个本地内存中缓存),以packet为单位,datanode1收到一个packet就会传给datanode2,datanode2再传给datanode3;datanode1没传递一个packet就会放入一个应答队列中等待应答。当一个block传输完毕之后,客户端再次请求NameNode上传第二个block的服务器。(重复执行3-7步)

HDFS写操作

流程解析:

客户端向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以packet为单位来做校验)。客户端以packet为单位接收,现在本地缓存,然后写入目标文件。

网络拓步

在本地网络中,连个节点被称为“彼此相邻”是什么意思? 在海量数据处理中,只主要限制因素是节点之间数据的传输速率——带宽很稀缺。这里的想法是将两个节点之间的带宽所谓距离的衡量标准。 节点距离:两个节点到达最近的公共祖先的距离总和。

机架感知(副本节点选择)

官方ip: http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/RackAwareness.html http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Data_Replication

机架感知在Hadoop2.7.2进行了修改: 1)低版本的Hadoop副本节点选择(机架感知)

第一个副本在客户端坐在的节点上。如果客户端在集群外,随机选择一个第二个副本和第一个副本位于不同机架的随机节点上第三个副本和第二个副本属于相同机架,节点随机(与第二个副本不在同一个节点) 2)Hadoop2.7.2副本节点选择(机架感知)第一个副本在客户端所在的节点上。如果客户端在集群外,随机选一个。第二个副本和第一个副本位于相同机架,随机的不同节点上。第三个副本位于不同机架,随机节点上。
最新回复(0)