图2.2 Hadoop集群拓扑结构图题
2.1.2.1 NameNode介绍
Hadoop在分布式存储中使用了主/从(master/slave)结构。这种系统就是Hadoop文件系统,即HDFS。NameNode位于HDFS的主要位置,它指导从端的DataNode执行底层的I/O任务。NameNode关注文件分块的具体活动,这包括了文件被存储在什么位置,以及此系统的运行状态是否正常。由于NameNode的运行需要消耗占用大量的内存和输入输出资源。因此,NameNode的身份只会是DataNode和TaskTracker其中之一。
2.1.2.2 DataNode介绍
在Hadoop集群上,每一个从节点都会有一个DataNode守护进程驻留,他的目的是将HDFS数据块读取、写入到本地文件系统中。在对文件件型读写时,会对文件进行分块,,并会通过NameNode查询出数据所在从结点的具体实例。而后,PC与相应从结点的守护进程进行通信,从而获取数据,以及后续的相应处理。而后,这些从节点之间还会进行一系列的操作,实现冗余备份。
2.1.2.3 SecondaryNameNode介绍
SecondaryNameNode(SNN)是一个用于检测HDFS集群状态的辅助守护进程。每个集群有一个SNN,通常也独占一台服务器,该服务器不会进行其他的DataNode或TaskTracker守护进程。但是,SNN不接受或记录HDFS的任何实时变化。
2.1.2.4 JobTracker介绍
每个Hadoop集群只有一个JobTracker守护进程。往往作为主节点运行在服务器集群上。监测MapReduce作业过程是它的目的和任务。
但当任务上传给集群之后,JobTracker就会确定执行计划,这包含了什么文件是需要被处理的,以及这些人物所要被分配执行的节点。如果任务失败,JobTracker将自动重启任务,
2.1.2.5 TaskTracker介绍
TaskTracker负责监管每个从节点上各任务的执行情况。
每个TaskTracker负责执行由JobTracker分配的单项任务。虽然每个从节点上仅有一个TaskTracker,但每个TaskTracker可以生成多个JVM(Java虚拟机)来并行地处理许多map和reduce任务。
2.2认识HDFS
2.2.1 HDFS概述
HDFS(Hadoop Distributed File System)是一个分布式文件系统,它基于诸如处理超大文件的需求等初衷而开发的,运行在普通硬件上。HDFS据有高可扩展性,高可靠性,高容错,高获得性,高吞吐率等特征,在处理超大数据集(LargeDataSet)的应用时,提供了更多便利。
HDFS系统中文件的目录独立存储在NameNode上,对于具体的文件数据来说,数据拆分成多个块,这些块冗余存储在DataNode集合数据里。NameNode负责执行文件系统的Namespace管理工作,主要包括关闭,打开和重命名数据文件和目录等操作。DataNode节点主要完成了客户端的读写等功能。
2.2.2 HDFS体系结构
HDFS是一个主/从(Master/Slave)体系结构,从用户的角度来看,它和传统的文件系统并无二致。通过它可以对文件执行如下的相关操作(Create、Read、Update、Delete)。但出于分布式存储的性质考虑,HDFS集群包含一个NameNode和一些DataNode。NameNode管理文件系统索引及路径,DataNode存储实际数据。客户端通过NameNode和DataNodes一起使用读取相应的文件。
1)文件写入
NameNode根据文件大小和文件块配置情况,返回给客户它所在的DataNode的相关参数信息。用户将所需写入的数据分块,并分别上传至不同的DataNode中,完成文件的写入功能。
2)文件读取
HDFS典型的情况是在一个PC结点NaNode,其他机器运行的是DataNode;抑或所有的机器上不仅同时运行了NamaNode,也运行了DataNode。这样子适合根据不同的项目需求采用不同的技术方案 依托Hadoop平台的田间云终端系统设计与实现(3):http://www.751com.cn/jisuanji/lunwen_23607.html