什么是Namenode
相当于一个领导者,负责调度 比如你需要存一个640m的文件 如果按照64m分块 那么namenode就会把这10个块(这里不考虑副本)分配到集群中的datanode上 并记录对于关系 。当你要下载这个文件的时候namenode就知道在那些节点上给你取这些数据了,它主要维护两个map: 一个是文件到块的对应关系 一个是块到节点的对应关系。
什么是SecondNamenode
SecondNamenode是对主Namenode的一个补充,它会周期的执行对HDFS元数据的检查点。 当前的设计仅仅允许每个HDFS只有单个SecondNamenode结点。
SecondNamenode是有一个后台的进程,会定期的被唤醒(唤醒的周期依赖相关配置)执行检查点任务,然后继续休眠。 它使用ClientProtocol协议与主Namenode通信。
SecondNamenode最好与Namenode部署到不同的服务器( 应该在merge的过程中,SecondNamenode对内存的需求与Namenode是相同的,所以对于那些大型的生产系统 中,如果将两者部署到同台服务器 上,在 内存上会出现 瓶颈。)
他只是Namenode的一个小助手(helper),可以防止edits过大,进而导致下次Namenode启动加载过慢。
1,检查点到底是做什么用的呢?
先抛开SecondNamenode不说,先介绍下Namenode中与检查点相关的两个文件,以及他们之间的关系。fsimage