您的位置:首页 > 运维架构 > 网站架构

快速了解Hadoop架构

2014-07-21 11:15 323 查看
转自:http://www.656463.com/article/376

Hadoop是一个能够对大量数据进行分布式处理的软件框架, Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。hadoop的集群是基于master/slave模式。



运行在master上的:NameNode 、 Secondary NameNode 、JobTracker

运行在slave上的:DataNode 、TaskTracker

1、NameNode是HDFS的守护程序,负责记录文件是如何分割成数据块的,以及这些数据块分别被存到那些数据节点上,只要功能是对内存及I/O进行集中管理(是个单点,发生故障将使集群崩溃)

NameNode 主要功能提供名称查询服务,它是一个jetty服务器

NameNode保存metadata(元数据)信息,包括

文件owership和permissions

文件包含哪些块

Block保存在哪个DateNode(由DataNode启动时上报)

NameNode的metadata信息在启动后会加载到内存

metadata存储到磁盘文件名为“fsimage”

Block的位置信息不会保存到fsimage

2、DataNode这个后台程序负责把HDFS数据块读写到本地的文件系统,当客户端要读写某个数据时候,先由NameNode告诉客户端去哪个DataNode进行具体的读/写操作,然后客户端直接与这个DataNode服务器上的后台程序进行通讯,并且对相关的数据块进行读/写操作。

3、SecondaryNameNode:是一个用来监控HDFS状态的辅助后台程序,就像NameNode一样,每个集群都有一个Secondary NameNode,不接收或记录任何任何实时的数据变化,但是,他会与NameNode进行通信,以便定期的保存HDFS元数据的快照,如果Name发生问题,SecondaryNameNode可以及时的作为备用NameNode。

4、JobTracker:用来连接应用程序与Hadoop,用户代码提交到集群以后,由JobTracker决定那个文件将被处理,并且为不同的task分配节点,同时,他还监控所有运行的task一旦某个task失败了JobTacker就会自动重新开启task。每个集群只有唯一一个JobTracker,位于Master节点

5、TaskTracker:与负责存储的DataNode结合,JobTracker负责分配Tasker,管理各自节点上的task。每个节点只有一个TaskTracker,但一个TaskTracker可以启动多个JVM,用于并行执行map或reduce任务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: