hadoop总结-进程&功能

namenode :

  • Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。
  • 控制副本放在哪些datanode上,读取时优先读取最近的,降低块消耗和读取时延。
  • 周期性接受datanode的信条信息和块状态报告(包含包含datanode的所有数据块列表)。

它维护着文件系统树文件夹的元数据,元数据包括:
fsimage:快照,存储某一时段NameNode内存元数据信息;
edits:操作日志文件;
Namenode是所有HDFS元数据的仲裁者和管理者,用户数据永远不会流过Namenode。

安全模式:
Namenode启动后会进入一个称为安全模式的特殊状态。处于安全模式的Namenode是不会进行数据块的复制的。Namenode从所有的 Datanode接收心跳信号和块状态报告。块状态报告包括了某个Datanode所有的数据块列表。每个数据块都有一个指定的最小副本数。当Namenode检测确认某个数据块的副本数目达到这个最小值,那么该数据块就会被认为是副本安全(safely replicated)的;在一定百分比(这个参数可配置)的数据块被Namenode检测确认是安全之后(加上一个额外的30秒等待时间),Namenode将退出安全模式状态。接下来它会确定还有哪些数据块的副本没有达到指定数目,并将这些数据块复制到其他Datanode上。

#退出安全模式
hadoop dfsadmin -safemode leave

namenode & secondarynamenode 数据持久化

  • 对于任何对文件系统元数据产生修改的操作,Namenode都会使用一种称为EditLog的事务日志记录下来。
  • Namenode在本地操作系统的文件系统中存储这个Editlog。整个文件系统的名字空间,包括数据块到文件的映射、文件的属性等,都存储在一个称为Fsimage的文件中,这个文件也是放在Namenode所在的本地文件系统上。
  • 当Namenode启动时,它从硬盘中读取Edits和FsImage,将所有Edits中的事务作用在内存中的FsImage上,并将这个新版本的FsImage从内存中保存到本地磁盘上,然后删除旧的Edits,因为这个旧的Edits的事务都已经作用在FsImage上了。这个过程称为一个检查点(checkpoint)。

然而,这样下去不行,每次启动都要读取Editlog和FsImage,一段时间后edits变得非常大,影响效率。所以,secondarynamenode 出来了。

  • secondarynamenode会周期性(定时|超过大小)读取namenode的 edits
    然后更新自己的fsimage。拷贝更新后的快照,到namenode替换fsimage,最后把edits换了。就是,secondarynamenode分担了namenode的部分工作,给它做了,从而减轻负担,提高效率。

secondarynamenode

  • 是namenode的冷备,减少启动时间。
  • Secondary Namenode 运行在一个单独的物理机上,因为合并操作需要占用大量的CPU时间以及和Namenode相当的内存。
  • 执行命名空间的定期检查点,并帮助将包含HDFS修改日志的文件大小保持在NameNode的特定限制内。
  • 在Namenode宕机时,数据丢失是不可避免的。在这种情况下,一般把远程挂载的网络文件系统(NFS)中的Namenode的元数据文件来使用,把NFS中的Namenode元数据文件,拷贝到辅助Namenode,并把辅助Namenode作为主Namenode来运行。

DataNode

  • 集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储,处理文件内容的读写请求,跟文件相关的数据流不经过namenode,会询问与哪些datanode联系,防止namenode成为系统瓶颈。
  • 通过向NameNode发送心跳保持与其联系(3秒一次)
  • 如果10分钟没有收到DataNode的心跳,则认为它挂了。

ResourceManager

在YARN中,ResourceManager负责集群中所有资源的统一管理和分配,它将各个资源部分(计算、内存、带宽等)精心安排给基础 NodeManager(YARN 的每节点代理)。ResourceManager 还与 ApplicationMaster 一起分配资源,与 NodeManager 一起启动和监视它们的基础应用程序。

nodemanager

nodemanager是ResourceManager安排在节点上的小弟,负责容器管理,监控,将情况向ResourceManager报告。

checkpointnode

定期地创建命名空间的检查点,CheckpointNode与NameNode通常运行在不同的机器上,内存与NameNode的内存一样大小,一个NameNode可以同时配置多个Checkpoint Node。

编辑core-site.xml 增加checkpoint相关配置
fs.checkpoint.dir
fs.checkpoint.period
fs.checkpoint.size

backupnode

比 checkpointnode 更实用于恢复,在内存中保留与NameNode一样的元数据。
BackupNode在内存中维护了一份从NameNode同步过来的fsimage,它还从namenode接收edits文件的日志流,定期把它们持久化到硬盘。

 NameNode,只允许配置一个BackupNode,而且利用Backupnode模式就不允许登录CheckPointNode了 
 # *********************************在此记一下,遇到好处理*********************

配置在 hdfs-site.xml
dfs.backup.address
dfs.backup.http.address

// 执行命令
hadoop namenode -backup

猜你喜欢

转载自blog.csdn.net/qq_42898087/article/details/85233188
今日推荐