1 绪论

在 Hadoop 1.X版本中,NameNode是整个HDFS集群的单点故障(single point of failure,SPOF):每一个HDFS集群只能有一个NameNode节点,一旦NameNode所在服务器宕机或者出现故障将导致整个集群都不可用,除非重启或者开启一个新的Namenode集群才能够恢复可用。

在Hadoop 2.X 版本中,HDFS引入了双NameNode架构,HA(High Available)通过将两个NameNode分别配置为Active/Passive状态来解决上述问题。处于Active状态的NameNode叫作Active Namenode,处于Passive状态的NameNode叫作Standby Namenode。 Standby Namenode作为Active Namenode的热备份,能够在NameNode发生故障或者由于日常服务器维护需要重启的时候以一种优雅的方式自动切换为Active Namenode。

Active Namenode处理客户端所有的操作请求(读写),Standby Namenode只是作为Active Namenode的Slave尽可能地与Active Namenode保持状态同步,使得在Active Namenode故障时能够快速完成切换。为了使Standby Namenode与Active Namenode数据保持同步,两个Namenode都需要与一组Journal Node进行通信。当Active Namenode执行的任务对namespace有所更改时,会确保将修改日志持久到Journal Node节点中的大部分。Standby Namenode持续监控这些Journal Node,当监测发现这些修改日志有变化时,就会将这些修改应用到自己的namespace,进而保持与Active Namenode中namespace元数据保持一致。当进行故障转移时,Standby Namenode在成为Active Namenode之前,会确保自己已经读取了Journal Node中的所有修改日志,从而保持数据状态与故障发生前一致。

为了确保故障转移能够快速完成,Standby Namenode需要维护最新的Block位置信息,即每个Block副本存放在集群中的哪些节点上。为了达到这一点,Datanode同时配置主备两个Namenode,并同时发送Block报告和心跳到两台Namenode。

任何时候只有一个Namenode处于活动状态对HA集群来说至关重要,否则可能出现数据丢失或者数据损坏。当两台Namenode都认为自己的Active Namenode时,会同时尝试写入数据(不会再去检测和同步数据)导致所谓的“裂脑现象”出现。为了达到这个目的并避免出现“裂脑现象”,管理员必须为共享存储配置至少一个(fencing)方法。在宕机期间,如果确定了之前的Active Namenode已经放弃活动状态,fencing进程将负责中断之前的Active Namenode对共享存储的访问和编辑,从而防止它继续对命名空间做出任何进一步的修改,使新的活动节点能够安全地进行故障转移。

2 简介及软件准备

2.1 简介

HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。它与被认为是不间断操作的容错技术有所不同。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。   

高可用性(High Availability)提供了解决一种最小化网络中由于单点故障而带来的风险的方法。如对于部署防火墙的企业,从网络安全方面考虑,所有进出信息流都必须经过防火墙。这时防火墙就是一个单点故障。对于很多企业来说,长时间的服务中断是不可接受的,这就引入了高可用性的需求。随着网络应用的增多和服务实时性需求的增加,用户对高可用性的需求也越来越强。作为网络中单点故障设备,防火墙有必要提供高可用性解决方案。

2.2 软件准备

2.2.1 CentOS 7的安装

  1. 安装VMware15.5
  2. 创建新的虚拟机

(自定义)下一步→下一步→(稍后安装操作系统)下一步→(Linux、CentOS 7 64位)下一步→(设置虚拟机名称master、选择安装位置)下一步→下一步→(虚拟机内存1024MB)下一步→(NAT)下一步→下一步→下一步→(创建新虚拟磁盘)下一步→(最大磁盘大小10GB、将虚拟机磁盘存储为单个文件)下一步→下一步→(自定义硬件,删去声卡、打印机;新CD/DVD中“使用ISO映像文件”选中CentOS-7-x86_64-Minimal-1908.iso)完成。

  1. 简介及软件准备

2.1 简介

HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。它与被认为是不间断操作的容错技术有所不同。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。   

高可用性(High Availability)提供了解决一种最小化网络中由于单点故障而带来的风险的方法。如对于部署防火墙的企业,从网络安全方面考虑,所有进出信息流都必须经过防火墙。这时防火墙就是一个单点故障。对于很多企业来说,长时间的服务中断是不可接受的,这就引入了高可用性的需求。随着网络应用的增多和服务实时性需求的增加,用户对高可用性的需求也越来越强。作为网络中单点故障设备,防火墙有必要提供高可用性解决方案。

2.2 软件准备

2.2.1 CentOS 7的安装

  1. 安装VMware15.5
  2. 创建新的虚拟机

(自定义)下一步→下一步→(稍后安装操作系统)下一步→(Linux、CentOS 7 64位)下一步→(设置虚拟机名称master、选择安装位置)下一步→下一步→(虚拟机内存1024MB)下一步→(NAT)下一步→下一步→下一步→(创建新虚拟磁盘)下一步→(最大磁盘大小10GB、将虚拟机磁盘存储为单个文件)下一步→下一步→(自定义硬件,删去声卡、打印机;新CD/DVD中“使用ISO映像文件”选中CentOS-7-x86_64-Minimal-1908.iso)完成。

2.2.2 基本网络配置

2.2.3 FinalShell 与虚拟机连接

2.2.4 NTP 集群时间同步

3 JDK 的安装与配置

3.1 安装 JDK

3.2 JDK 的配置

4 ZOOKEEPER 的安装与配置

4.1 安装 ZOOKEEPER

4.2 ZOOKEEPER 的配置

4.3 ZOOKEEPERD 的启动

5 高可用 HADOOP 的安装与配置

5.1 安装 HADOOP

5.2 HADOOP 的配置

5.3 HADOOP 的启动

5.4 网页端查看状态

总结

1. 元数据管理方式需要发生如下的改变:

两个NameNode内存中各自保存一份元数据,原来只有一份,现在大家都有;

Edits日志只有Active(工作)状态的NameNode节点可以做写操作,其他的只能读;两个NameNode都可以读取Edits;共享的Edits放在一个共享存储中管理(qjournal和NFS两个主流实现),这样各个节点就都能看得到。

2. 需要一个状态管理功能模块:

每个NameNode节点都有一个zkfailover客户端,常驻在每一个NameNode所在的节点,每一个zkfailover负责监控自己所在NameNode节点,并且给自己的节点状态进行标识,将这个标识注册到zookeeper里,当需要进行状态切换时,由zkfailover来负责切换,切换时需要防止brain split(脑裂:即多个NameNode一起工作,造成数据不一致)现象的发生。

3. 必须保证两个NameNode间能够ssh无密码登录,两个节点要能够随时通信。

4. 隔离(Fence),即同一时刻仅仅有一个NameNode对外提供服务(两个同时则会脑裂)。

5. 若想手动验证查看主备节点是否能够切换,可使用kill -9命令杀死启用状态节点的NameNode进程,后在网页端刷新后查看原备用节点现在的状态。

  点赞后评论留下邮箱,可获得文档版全部内容!

HA高可用HADOOP生态群系统搭建相关推荐

  1. Hadoop的HA机制原理解析,与HA高可用集群环境搭建

    2019独角兽企业重金招聘Python工程师标准>>> Hadoop的HA工作机制示意图 下面我们开始搭建这一套高可用集群环境 hadoop2.0已经发布了稳定版本了,增加了很多特性 ...

  2. flink HA高可用Standalone集群搭建

    flink 1.9.2版本搭建的HA JM存在bug: 明明在node01, node02两个节点上都有JM,但是孰是activing,孰是standby状态无法区分.Spark是有明确的状态显示的. ...

  3. conga下HA高可用集群的搭建(redhat6.5)

    实验环境 redhat6.5虚拟机三台,各1G内存,时间同步 server1  172.25.44.1 server2  172.25.44.2 server3  172.25.44.3 火墙和sel ...

  4. Hadoop2.2.0 HA高可用分布式集群搭建(hbase,hive,sqoop,spark)

    1 需要软件 Hadoop-2.2.0 Hbase-0.96.2(这里就用这个版本,跟Hadoop-2.2.0是配套的,不用覆盖jar包什么的) Hive-0.13.1 Zookeepr-3.4.6( ...

  5. Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)

    一.服务器环境 主机名 IP 用户名 密码 安装目录 master 192.168.142.124 root xxx /usr/hadoop-2.6.5/ slave1 192.168.142.125 ...

  6. Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建

    目录 目录 1.前言 1.1.什么是 Hadoop? 1.1.1.什么是 YARN? 1.2.什么是 Zookeeper? 1.3.什么是 Hbase? 1.4.什么是 Hive 1.5.什么是 Sp ...

  7. Hadoop HA 高可用集群搭建

    Hadoop HA 高可用集群搭建 一.首先配置集群信息 1 vi /etc/hosts 二.安装zookeeper 1.解压至/usr/hadoop/下 1 tar -zxvf zookeeper- ...

  8. Centos7.6+Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建

    本文转自https://mshk.top/2019/03/centos-hadoop-zookeeper-hbase-hive-spark-high-availability/,因为原链接打不开,故在 ...

  9. HA高可用完全分布式集群 HDFS搭建

    HDFS HA 需要 设置静态IP.安装 jdk.设置ssh无密码登录.安装zookeeper.安装hadoop. 在Hadoop2.X之前,Namenode是HDFS集群中可能发生单点故障的节点,每 ...

最新文章

  1. 【PostgreSQL】行变列、非空(CASE WHEN、COALESCE)语句总结
  2. NumPy基础入门学习
  3. JavaScript面试时候的坑洼沟洄——表达式与运算符
  4. java线程池参数面试题,附赠复习资料
  5. linux下lvm挂载设备找不到,linux – 如何在“找不到设备:设备未清除”错误消息后创建LVM快照...
  6. 【Java】用while循环实现1+2+3......+100
  7. 一个方法多个return_CVPR 2020(Oral) | 旷视提出CrowdDetection:密集场景检测新方法:一个候选框,多个预测结果...
  8. python如何提高工作效率_用Python的这3个优点,让工作效率提升一倍
  9. android应用内存不断膨胀,在android中膨胀简单的xml布局时出现内存不...
  10. scrollIntoView()窗口滚动
  11. Hbase数据模型入门
  12. SQL中SELECT INTO和INSERT INTO SELECT语句介绍
  13. 用友数据库错误“未能读取并闩锁页(1:3355)(用闩锁类型SH)”修复
  14. win10锁定计算机命令,win10怎么锁定磁盘 锁住win10计算机磁盘的操作步骤
  15. 表格中使用blockquote出现外边框的解决办法
  16. 关系代数中的除法运算
  17. 2020年抖音用户画像报告
  18. 20220313_朴素贝叶斯
  19. Linux安装 VMware tools 工具的方法(转,已测试成功)
  20. 腾讯视频QLV格式转换为MP4格式 1

热门文章

  1. 如何科学(mianfei)使用百度文库
  2. 三种Android图片压缩方法 压缩到指定大小
  3. 河南师范大学计算机学院地址,河南师范大学校区有几个 地址是什么
  4. 河南移动AI面试 面经
  5. 【软件之道】亿图9.3 显示的内容与导出成图片后的内容不一致
  6. Oracle数据表创建规则
  7. 使用swiper组件的transform属性导致文字模糊的解决办法
  8. Linux内核源码组织结构
  9. 计算机主机箱工作电流,计算机主板上所用到的电压标准
  10. 由siri谈苹果公司的发展