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

初识Hadoop

2017-10-31 10:15 162 查看

Hadoop生态系统



对于hadoop生态系统的各个模块这里就不一一去描述,如果你想从事大数据,后面你应该会一一学到。下面就简单的讲解一个Hadoop。

hadoop四个模块

hadoop主要包括四个模块:

Hadoop Common:为其他hadoop模块提供基础设施

Hadoop MapReduce:一个分布式并行计算框架,对海量数据的处理

Hadoop YARN:一个新的MapReduce框架,任务调度与资源管理

HDFS



hdfs是分布式文件系统,在hdfs上数据是以block的方式进行存储。他通过主节点namenode存储元数据信息,通过datanode存储具体的数据。一个namenode或者namenode就是一个节点(一台主机)。

namenode:

namenode 是主节点,存储文件的元数据和文件名,文件目录结构,文件属性(生成时间,副本数,文件权> 限),以及每个文件的块列表和块所在的DataNode等。

namenode是一个java进程,数据存放在内存中,本地磁盘有具体的数据备份。对数据进行修改时,对数据的修改也会保存在本地磁盘中。

数据放在内存:保证获取元数据时的速度,namenode启动的时候会将本地磁盘中的元数据信息加载到内存中。

本地磁盘备份:在本地磁盘有对元数据的备份,备份的数据主要存放在两个文件中,分别是fsimage镜像文件和edites编辑日志。

namenode启动时会将fsimage镜像文件中的元数据信息全部加载进内存。每次对namenode进行修改时候会将修改日志信息存放在edites编辑日志 中。这样:name中的数据 + fsimage镜像文件 = namenode中的实时数据。

datanode:

在本地文件系统中存储文件的块数据,以及块数据的校验和。namenode存储数据的原数据信息,而具体的数据存储在datanode,所以具体的数据流不经过namenode,只去namenode去获取数据的元数据信息。

secondary NameNode:

用来监控HDFS状态的辅助后台程序,每隔一段时间合并fsimage和edites两个文件——将fsimage和edites合并成新的fsimage,然后创建一个新的空的edites。

YARN(hadoop操作系统, data操作系统)



Resource Manager

(1)处理客户端请求

(2)启动/监控applicationMaster

(3)监控NodeManager

(4)对整个集群资源分配与调度

Node Manager

(1)单个结点上的资源管理

(2)处理来自ResourceManager的命令

(3)处理来自ApplicationMaster的命令

ApplicationMaster

(1)数据切分

(2)为应用程序申请资源,并分配给内部任务

(3)任务监控与容错

Container

对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量,启动命令等任务运行相关的信息。

MapReduce



将计算任务分为两个阶段:Map 和 Reduce(分而治之)。Map阶段并行处理数据,Reduce阶段对Map结果进行汇总,具体的执行流程如下:

input->map->suffle(洗牌阶段,如统计单词个数的程序排序阶段会在这个阶段完成)->reduce->output

Shuffle链接Map和Reduce两个阶段,Map Task将数据写到本地磁盘,Reduce Task从每个Map Task上读取一份数据。

mapreduce仅适合离线数据处理,具有较好的容错性和扩展性,适合简单的批任务处理,缺点明显就是启动开销大,过多使用磁盘导致效率下降。

想去了解更多的hadoop的相关知识可以查看下文:

NameNode启动过程

Hadoop安装——启动模式,基本配置,启动方式

HDFS架构与交互

YARN架构和资源管理

MapReduce编程模型及实现WordCount

MapReduce Shuffle过程深入理解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: