首先来介绍两个概念
▪NameNode:领导级别。管
NameNode:领导级别。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;
DataNode:员工级别。负责存储客户端发来的数据块block;执行数据块的读写操作。
理数据
写详细步骤:
1、首先向namenode通信,请求上传文件,namenode检查目标文件是否已存在,父目录是否存在
2、namenode返回是否可以上传
3、client会先对文件进行切分
4、namenode返回datanode的服务器
5、client请求一台datanode上传数据,第一个datanode 收到请求会继续调用第二个,然后第二个调用第三个,将这个通信管道建立完成,然后逐级应答
6、client开始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位(一个packet为64kb),第一台datanode收到一个packet就会传给第二台,第二台传给第三台;第一台每传一个packet会放入一个应答队列等待应答
7、当一个block传输完成之后,client再次请求namenode上传第二个block的服务器。
读详细步骤:
1、跟namenode通信,查询元数据(block所在的datanode节点)
2、判断读取的文件是否存在。存在,则响应客户端该文件保存在datanode节点上。
3、客户端收到可以读文件的响应后,根据拿到的datanode节点信息,会与每个datanode节点建立网络连接,然后读取保存在每个datanode节点的block块数据。
4、客户端会将从网络中读取的数据保存到缓存中,然后保存到本地磁盘。
块映射;处理客户端的读写请求;配置副本策略;