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

hadoop学习笔记四 -- hadoop集群HA架构设计

2015-10-19 00:02 465 查看
环境:

系统:centos6.5

hadoop:2.7.1

zookeeper:3.4.6



涉及到的概念和作用解释:

zk : zookeeper,主要的作用是保证HA(high available 高可用),当一个namenode节点故障以后,切换备用namenode为主节点

FailoverControllerActive:也叫做DFSZKFailoverController,主要作用是检测namenode的状态,会用心跳的方式来判断namenode节点是否正常工作,

如果没有正常工作的话,会通知zk将备用namenode切换成主namenode

NN ACTIVE:namenode主节点,datanode的管理节点,是hdfs的组成部分,namenode会将上传到hdfs的文件的文件名,大小,在datanode的位置,等等信息放在内存中,相面会详细说namenode

NN Standby:namenode备用节点,会在主节点故障的时候替代主节点,通过 shared NN state with single writer 来保持和主节点信息的同步

shared NN state with single writer:启动后的线程名字是JournalNode,主要存放的是namenode的edits文件,也就是namenode保存在硬盘的备份,这个线程时用来同步主备namenode的内存数据

DN:是datanode的缩写,主要是存放的文件的节点,默认一个块的大小是128M,可以选择文件的备份数量

高可用架构详细说明:

##首先要说得是zookeeper,这里的zookeeper是用来通过心跳机制来监测主备的namenode的状态,当主namenode出现故障的时候就会切换备namenode为主节点,实现了高可用的特性;

##FailoverControllerActive:这个是使用rpc来实现的心跳机制来

##然后要说到hdfs了,hdfs是由namenode,datanode组成的(单机情况下会有secondarynamenode,主要是用于定时将内存中namenode存储的信息保存到硬盘),namenode中主要存储的上传的文件的信息,对应多个datanode,namenode在单机情况下会通过secondaryNamenode的http方式来将内存中的数据保存到磁盘文件上(edits),在集群下,是要通过shared NN state with single writer(fense)来替代secondarynamenode,使用fense对比secondary,就好像集群对比单机一样,更可靠,然后两个节点的namenode通过fense来同步数据,可以保证数据一致性,当一个节点故障的时候,zk会迅速切换另一个节点,保证高可靠性;

##然后mapreduce是由nodemanager和resourcemanager构成的,nodemanager最好和datanode在一台机器上,因为一些任务需要下载文件分析,会在datanode上下载文件

,在一台机器上可以加快执行速度。

可能上面的描述还是不够明白,下面会详细解释两个地方:

一:hdfs的工作原理

二:mapreduce的工作原理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: