目录
HA的架构
Hadoop HA 即Hadoop的高可用,不同于普通的namenode+second namenode的模式,second namenode只能作为namenode的冷备份,当namenode挂掉后,second namenode不能自动充当namenode的角色。所以为了保证高可用性,就有了Hadoop HA的机制。
hdfs HA中即有至少有两个namenode,这儿以两个namenode为例,一个可以对外提供服务的namenode成为active namenode,待命状态的namenode成为standby namenode。
1.如何做到两个namenode的元数据的一致性呢?
将edits文件托管给稳定的第三方存放(当然,为了防止第三方挂掉,namenode本地的edits文件也是必要的),standby namenode就可以定时去第三方取edits文件放在内存中,做元素据的修改。这样就可以保证actice 和standby的数据一致性。
2.第三方用什么才能保证高可用?
第三方用的是qjournal集群,集群就可以将edits文件存放在每个机器中。并且这个集群使用zookeeper作为集群的协调,保证数据写入一半以上的机器,才为写入成功。
3.怎么做到standby在active节点挂掉自动充当active的角色呢?
这儿在每个namenode对应着一个监控进程ZKFC。在active上ZKFC使用RPC调用以判断active是否挂掉,如果挂掉,那么在zookeeper上将相应的节点删除(分布式锁),在Standby节点上的ZKFC进程就可以感知到节点删除的信息。Standby节点上的ZKFC进程感知到active节点挂掉的信息之后会向active节点发送一个杀死hdfs namenode的命令,确保active死亡,然后再向standby发送切换的指令,并向zookeeper创建节点。这样就可以让standby模式转换为active模式。
对于resourceManager的HA,因为不存在数据的一致性,所以只需要向zookeeper创建节点(获得分布式锁)即可。
一、目的及要求:
实验目的:
掌握完全分布模式的整合平台中Hadoop的完全分布模式的安装和验证
Hadoop的高可用完全分布模式的安装和验证
实验要求:
- 完成 Hadoop的高可用完全分布模式的安装
- Hadoop的相关服务进程能够正常启动
- HDFS能够正常使用
- MapReduce示例程序能够正常运行
二、环境要求:
- 五台独立的虚拟机
- 主机之间有有效的网络连接,并已完成网络属性配置
- 每台主机内存2G以上,磁盘50G
- 所有主机上已安装Centos 7.4_64操作系统
- 已完成Zookeeper集群的安装与部署
- 所有主机已安装JDK
- 软件版本:选用Hadoop的2.7.3版本,软件包名为hadoop-2.7.3.tar.gz
集群规划:
★Hadoop的高可用完全分布模式中有HDFS的主节点和数据节点、MapReduce的主节点和任务节点、数据同步通信节点、主节点切换控制节点总共6类服务节点,其中HDFS的主节点、MapReduce的主节点、主节点切换控制节点共用相同主机Cluster-01和Cluster-02,HDFS的数据节点、MapReduce的任务节点共用相同主机Cluster-03、Cluster-04、Cluster-05, 数据同步通信节点可以使用集群中的任意主机,但因为其存放的是元数据备份,所以一般不与主节点使用相同主机。
★高可用完全分布模式中需要满足主节点有备用的基本要求,所以需要两台或以上的主机作为主节点,而完全分布模式中需要满足数据有备份和数据处理能够分布并行的基本要求,所以需要两台或以上的主机作为HDFS的数据节点和MapReduce的任务节点, 同时数据同步通信节点工作原理同Zookeeper类似, 需要三台或以上的奇数台主机,
具体规划如下:
三、具体步骤:
项目一:Hadoop的基本安装配置
该项的所有操作步骤使用专门用于集群的用户admin下进行
此项只在一台主机主机操作,然后在下一步进行同步安装与配置
1:首先,Hadoop软件包“Hadoop-2.7.3.tar.gz”我们已经上传到用户家目录的“setups”目录下。然后进行解压和环境变量设置。
★创建用于存放Hadoop相关文件的目录,并进入该目录
★将软件包解压
2:进入 .bash_profile文件配置Hadoop相关的环境变量。