一个用户访问HDFS需要经过的流程

1、客户端发送请求,调用DistributedFileSystem APIopen方法发送请求到Namenode,获得block的位置信息,因为真正的block是存在Datanode节点上的,而namenode里存放了block位置信息的元数据。

2Namenode返回所有block的位置信息,并将这些信息返回给客户端。

3、客户端拿到block的位置信息后调用FSDataInputStream APIread方法并行的读取block信息,流程是并发的,block默认有3个副本,所以每一个block只需要从一个副本读取就可以。

4datanode返回给客户端。


NameNode             

              是主节点,储存文件的元数据如文件名,文件目录结构,文件     属性(生成     时间,副本数,文件权限),以及每个文件的块列表和块所在DataNode等。

DataNode                        

                     在本地文件系统储存文件块数据,以及块数据的效验。

SecondaryNameNode                

                     用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照


namenode,datanode以及secondarynamenode三个人去打架,namenode指挥  datanode跟namenode汇报战况然后secondarynamenode辅namenode





你可能感兴趣的:(Hadoop)