浅谈hadoop个组件

分布式存储和分布式计算渗透在Hadoop框架的各个方面,运行Hadoop就相当于运行多个守护进程或者本地程序在同一网络不同的服务器上,这些进程扮演着不同的角色,一些会在一个服务器上,一些会存在不同的服务器上,这些进程主要包括namenode,datanode,secondary namenode,resourcemanage,nodemanage.

1.namenode
hadoop采用master/slave 设计模式用于分布式存储和计算。Hadoop的分布式存储系统叫做Hadoop file system,或HDFS。而namenode正是系统的master,管理着处理文件IO操作的DataNode,他就像记账职员一样,他记录着一个大文件如何被分成一个个小文件(目的是为了分布式存储),分成什么样子的,最终要被存到哪个节点上,他也负责这整个分布式存储系统的健康(比如:一个节点坏了,如何保持文件备份数目的稳定)。
namenode因需要大量的存储元数据信息,所以一般不会再在该服务器上存储用户数据和执行分布式计算了,这意味着运行namenode的服务器不同时兼顾DataNode或者NodeManager的运行。
最后namenode有一非常致命的缺点,那就是单点故障问题,因他是整个集群里的首脑,一旦他出问题,结果是致命的。(但也是有方法解决,以后说到Hadoop优化问题再商讨)

2.DataNode
datanode作为存储的主要引擎,他分布在每个slave服务器上,他的任务是根据namenode分的blocks存储到本地的文件系统中去,当要读取时,再根据从namenode那里获得的blocks把文件读取出来,这个过程是client与DataNode的直接交流,namenode充当引路人的角色。实际上,为了系统的安全性,DataNode要不断地和namenode交流,来保持namenode元数据的最新、最可靠。

3.Secondary NameNode
他和NameNode很像,在一个集群中只有一个SNN,也通常被配置到单独的服务器上,他主要功能是管理HDFS的状态,哈哈很抽象吧,简单的说就是时不时的复制一下NameNode上的元数据信息,其用于当发生单点故障时恢复数据之用,以达到降低最小损失。

4.Resource Manager
这个进程主要作用于你所要执行的程序(即写的mapreduce)和Hadoop之间,他掌控着文件的执行,分配不同的任务到节点上和所有运行着的tasks。控制着任务执行失败的恢复机制,如果任务执行失败,resourcemanager会从新发送该任务到其他节点上。

5.NodeManager
其主要管理在每个节点上的单个执行的任务,当然任务是由ResourceManager分配的,这个模式与存储系统应用的模式相似,他也是要和resourcemanager不断地保持沟通(发送心跳),如果在一定时间内,心跳段了,resourcemanager会从新分配该任务到其他节点上。
浅谈hadoop个组件_第1张图片

你可能感兴趣的:(big,data)