NameNode的介绍:
NameNode是HDFS的核心,也称为master,它仅存储元数据(文件系统中所有文件的目录树)
NameNode不存储实际的数据或数据集,数据本身存储在DateNodes中
NameNode知道HDFS中任何给定文件的块列表及其位置信息,当NameNode
关闭时,Hdfs/Hardoop集群无法访问
DateNode的介绍:
Datanode启动时,他将自己发布到NameNode 并汇报自己负责持有的块列表
当某个dataNode 关闭时,不会影响数据或集群的可用性
DateNode会定期(默认3秒钟)向Namenode发送心跳,如果NameNode长时间
没有收到心跳信息,就认为datenode失效。
DataNode还会定期的(默认是6小时)向nameNode发送自己所持有的块信息
HDFS的工作机制:
NameNode负责整理整个文件系统元数据:DataNode负责管理具体的文件数据块
存储:secondary NameNode协助NameNode进行元数据的备份
HDFS写数据流程:
1)客户端请求上传文件
2)Namenode检测文件系统目录树,如果目录树中相应位置不存在,则返回客户
端可以上传,请求上传文件的3个备份,检测dataNode 的信息池,返回3个可用的
dataNode的地址信息
3)建立连接,请求数据传输,建立管道plpeline-->建立数据传输流(以大小为64K的包
为单位)
4)dataNode保存传递过来源源不断的数据包,
HDFS读数据流程:
1)客户端请求读取文件
2)NameNode 向客户端返回跟请求相关的文件所有的元数据信息
3)客户端向dataNode请求下载下载文件的不同数据块并进行合并
MapReduce的运行介绍:
1)MRAppmaster:负责整个程序过程调度以及状态协调
2)MapTask:负责Map阶段整个数据处理流程
3)ReduceTask:负责reduce阶段的整个数据处理流程