NameNode为一个通常在HDFS实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode决定是否将文件映射到DataNode上的复制块上。
对于最常见的3个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。
实际的I/O事务并没有经过NameNode,只有表示DataNode和块的文件映射的元数据经过NameNode。
当外部客户机发送请求要求创建文件时,NameNode会以块标识和该块的第一个副本的DataNode IP地址作为响应。这个NameNode还会通知其他将要接收该块的副本的DataNode。
扩展资料
NameNode在一个称为FsImage的文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件(这里是EditLog)将存储在NameNode的本地文件系统上。FsImage和EditLog文件也需要复制副本,以防文件损坏或NameNode系统丢失。
NameNode本身不可避免地具有SPOF(Single Point Of Failure)单点失效的风险,主备模式并不能解决这个问题,通过Hadoop Non-stop namenode才能实现100% uptime可用时间。
NameNode管理文件系统的命名空间。它维护着文件系统树及整棵树内所有的文件和目录。这些信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件和编辑日志文件。
NameNode也记录着每个文件中各个块所在的数据节点信息,但它并不永久保存块的位置信息,因为这些信息在系统启动时由数据节点重建。
参考资料来源:百度百科-NameNode
参考资料来源:百度百科-Hadoop
当于一个领导者,负责调度 比如你需要存一个640m的文件 如果按照64m分块 那么namenode就会把这10个块(这里不考虑副本)它主要维护两个map 一个是文件到块的对应关系 一个是块到节点的对应关系。。不知道这样解释你能理解不!
相当于一个领导者,负责调度 比如你需要存一个640m的文件 如果按照64m分块 那么namenode就会把这10个块(这里不考虑副本)分配到集群中的datanode上 并记录对于关系 。当你要下载这个文件的时候namenode就知道在那些节点上给你取这些数据了。。。它主要维护两个map 一个是文件到块的对应关系 一个是块到节点的对应关系。。不知道这样解释你能理解不!
1、集群的目录/系统入口
2、集群任务调度中心
hdfs有两个核心namenode(一个主节点),datanode(多个从节点),
datanode主要是存储数据的,
namenode一是管理文件系统文件的元数据信息(包括文件名称、大小、位置、属性、创建时间、修改时间等等),二是维护文件到块的对应关系和块到节点的对应关系,三是维护用户对文件的操作信息(文件的增删改查)