设为首页 加入收藏

TOP

Hadoop的基本组件
2019-04-14 12:43:59 】 浏览:11
Tags:Hadoop 基本 组件
版权声明:博主保留一切权利,转载请注明出处。 https://blog.csdn.net/li_canhui/article/details/85836191

在一个全配置的集群中,“运行hadoop”意味着在网络分布的不同服务器上运行着一组守护进程。这些守护进程有特殊的角色,一些仅存在于单个服务器上,一些则运行在多个服务器上,他们包括

NameNode

DataNode

SecondaryNameNode

JobTracker

TaskTracker

下面,分别介绍下各个组件的作用。

1,NameNode

NameNode是Hadoop守护进程中最重要的一个。Hadoop的分布式计算和分布式存储都采用了主从结构。分布式存储系统被称为HDFS。NameNode位于HDFS的主端,它指导从端的DataNode进行底层的IO任务。NameNode是HDFS的书记员,它跟踪文件如何被分割成文件块,而这些块又被哪些节点存储,以及分布式文件系统的整体运行状态是否正常。

运行NameNode会消耗大量的内存和IO资源。因此,为了减轻机器的负载,主流NameNode的服务器通常不会存储数据或者执行计算任务。这意味着NameNode服务器不会同时是DataNode或TaskTracker。

不过,NameNode的重要性也带来了一个负面影响---Hadoop集群的单点失效。

2,DataNode

每一个集群中的从节点,都会驻留一个DataNode的进程,来执行分布式文件系统繁重的工作--将HDFS数据块读取或写入到本地文件系统。当希望对HDFS文件进行读写时,文件被分割为多个块,由NameNode告诉客户端哪个文件块存储在哪个节点。客户端直接与DataNode进行通信,来处理与数据块对应的本地文件。而后,DataNode会和其他DataNode进行通信,复制这些数据块以实现冗余。

3,SecondaryNameNode

SecondaryNameNode是一个用于监控HDFS集群状态的辅助守护进程。想NameNode一样,每个集群有一个SNN,它通常也独占一台服务器,该服务器不会再运行DataNode或TaskTracker。SNN与NameNode的不同在于,它不接收或记录HDFS的任何实时变化。相反,它和NameNode通信,根据集群配置的时间间隔获取HDFS元数据的快照。

如前所述,NameNode是集群的单一故障点,而SNN的快照可以有助于减少停机的时间并降低数据丢失的风险。然而,NameNode失效处理需要人工干预,即手动重新配置集群,将SNN用作主要的NameNode。

4,JobTracker

JobTracker守护进程是应用程序和Hadoop直接的纽带。一旦提交代码到集群上,JobTracker就会确定执行计划,包括决定处理哪些文件,为不同任务分配节点,以及监控所有任务的执行。

每个Hadoop集群只有一个JobTracker守护进程。它通常运行在集群的主节点上。

5,TaskTracker

与存储的守护进程一样,计算的守护进程也遵循主从结构:JobTracker作为主节点,检查MapReduce作业的这个执行过程,同时各个TaskTracker管理各个任务在每个从节点上的执行情况。

每个TaskTracker负责执行JobTracker分配的单项任务。虽然每个从节点上仅有一个TaskTracker,但是每个TaskTracker可以生成多个JVM来并行的处理许多map或reduce任务。

TaskTracker的一个指责是持续不断的和JobTracker通信。如果JobTracker在指定时间内没有收到来自TaskTracker的心跳,它假定TaskTracker已经崩溃了,进而重新提交相应的任务到集群中的其他节点。


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇认识的误区:Hadoop=云计算 下一篇Hadoop配置ssh无密码登陆

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }