4.HDFS的高可用机制、联邦机制

news/2024/5/20 0:49:16 标签: hdfs, 大数据

本文目录如下:

  • 7 HDFS的高可用机制
    • 7.1 HDFS高可用介绍
    • 7.2 组件介绍
    • 7.3 高可用机制-工作原理
    • 7.4 分布式环境搭建
  • 8 HDFS的联邦机制
    • 8.1 背景概述
    • 8.2 Federation架构设计

7 HDFS的高可用机制

7.1 HDFS高可用介绍

  • 在Hadoop中,NameNode所处的位置是非常重要的,整个HDFS文件系统的元数据信息都由NameNode来管理,NameNode的可用性直接决定了Hadoop的可用性,一旦`NameNode进程不能工作了,就会影响整个集群的正常使用。
  • 在典型的HA集群中,两台独立的机器被配置为NameNode。在工作集群中,NameNode机器中的一个处于Active状态,另一个处于Standby状态Active NameNode负责群集中的所有客户端操作,而Standby充当从服务器。Standby机器保持足够的状态以提供快速故障切换(如果需要)。
    在这里插入图片描述

7.2 组件介绍

  • ZKFailoverController
    是基于Zookeeper的故障转移控制器,它负责控制NameNode的主备切换,ZKFailoverController会监测NameNode的健康状态,当发现Active NameNode出现异常时会通过Zookeeper进行一次新的选举,完成Active和`Standby状态的切换

  • HealthMonitor
    周期性调用NameNodeHAServiceProtocol RPC接口 (monitorHealthgetServiceStatus),监控NameNode的健康状态并向ZKFailoverController反馈

  • ActiveStandbyElector
    接收ZKFC的选举请求,通过Zookeeper自动完成主备选举,选举完成后回调ZKFaildverController的主备切换方法对NameNode进行Activestandby状态的切换

  • DataNode
    NameNode包含了HDFS的元数据信息和数据块信息(blockmap),其中数据块信息通过DataNode主动向Active NameNodeStandby NameNode上报

  • 共享存储系统
    共享存储系统负责存储HDFS的元数据(EditsLog),Active NameNode (写入)和Standby NameNode(读取)通过共享存储系统实现元数据同步,在主备切换过程中,新的Active NameNode必须确保元数据同步完成才能对外提供服务

7.3 高可用机制-工作原理

在这里插入图片描述

  • 上图的下半部分如下所示:
    在这里插入图片描述

7.4 分布式环境搭建

  • 使用完全分布式,实现namenode高可用,ResourceManager的高可用集群运行服务规划
    在这里插入图片描述

8 HDFS的联邦机制

8.1 背景概述

  • NameNode的架构使得HDFS在集群扩展性和性能上都有潜在的问题,当集群大到一定程度后,NameNode进程使用的内存可能会达到上百G,NameNode成为了性能的瓶颈。因而提出了namenode水平扩展方案-- Federation
  • Federation中文意思为联邦、联盟,是NameNode的Federation,也就是会有多个NameNode。多个NameNode的情况意味着有多个namespace(命名空间),区别于HA模式下的多NameNode,它们是拥有着同一个namespace。既然说到了NameNode的命名空间的概念,这里就看一下现有的HDFS数据管理架构,如下图所示:
    在这里插入图片描述

8.2 Federation架构设计

  • HDFS Federatio是解决namenode内存瓶颈问题的水平横向扩展方案。
  • Federation意味着在集群中将会有多个namenode/namespace。这些namenode之间是联合的,也就是说,他们之间相互独立且不需要互相协调,各自分工,管理自己的区域。分布式的datanode被用作通用的数据块存储存储设备。每个datanode要向集群中所有的namenode注册,且周期性地向所有namenode发送心跳和块报告,并执行来自所有namenode的命令。
    在这里插入图片描述
  • Federation一个典型的例子就是上面提到的NameNode内存过高问题,我们完全可以将上面部分大的文件目录移到另外一个NameNode上做管理.更重要的一点在于,这些NameNode是共享集群中所有的DataNode的,它们还是在同一个集群内的。
  • 这时候在DataNode上就不仅仅存储一个Block Pool下的数据了,而是多个(在DataNode的datadir所在目录里面查看BP-xX.xx.xx.xx打头的目录)。

namespace(命名空间):
在这里插入图片描述
概括起来:

  • 多个NN共用一个集群里的存储资源,每个NN都可以单独对外提供服务。
  • 每个NN都会定义一个存储池,有单独的id,每个DN都为所有存储池提供存储。
  • DN会按照存储池id向其对应的NN汇报块信息,同时,DN会向所有NN汇报本地存储可用资源情况。

HDFS Federation不足

  • HDFS Federation并没有完全解决单点故障问题。虽然namenode/namespace存在多个,但是从单个namenode/namespace看,仍然存在单点故障:如果某个namenode挂掉了,其管理的相应的文件便不可以访问。Federation中每个namenode仍然像之前HDFS上实现一样,配有一个secondary namenode,以便主namenode挂掉一下,用于还原元数据信息。
  • 所以一般集群规模真的很大的时候,会采用HA+Federation的部署方案。也就是每个联合的namenodes都是ha的。

声明:本文是学习时记录的笔记,如有侵权请告知删除!
原视频地址:https://www.bilibili.com/video/BV1154y1U73k


http://www.niftyadmin.cn/n/1743776.html

相关文章

大数据学习框架综述-Hadoop组成、大数据生态、推荐系统技术框架

本文目录如下:大数据学习框架综述大数据学习框架综述 Hadoop的组成 注:YARN之上调用的是MapReduce计算框架,也可调用其它计算框架的资源,如Spark、Flink。 大数据技术生态体系 图中涉及的技术名词解释如下: Sqoop&…

1.Hadoop运行环境搭建-Linux虚拟机准备、JDK安装、Hadoop安装、Windows安装Hadoop

本文目录如下:1.Hadoop运行环境搭建1.1 虚拟机环境准备1.2 安装JDK1.2.1 卸载现有JDK1.2.2 在Linux系统下的opt目录中查看软件包是否导入成功1.2.3 解压JDK到/opt/module目录下1.2.4 配置JDK环境变量1.2.5 测试JDK是否安装成功1.3 安装Hadoop1.3.1 进入到Hadoop安装…

2.Hadoop运行模式-本地式、伪分布式 (仅用于测试) | 历史服务器、日志聚集

本文目录如下:Hadoop运行模式-本地式、伪分布式2.本地运行模式2.1 官方Grep案例2.2 官方WordCount案例3 伪分布式运行模式 (仅用于测试)3.1 启动HDFS并运行MapReduce程序3.1.1 配置集群3.1.2 启动集群3.1.3 查看集群3.1.4 操作集群3.2 启动YARN并运行MapReduce程序3…

数据结构算法【algorithm00001】-快速排序算法(QuickSort) -Java

Java语言实现的快速排序算法 快速排序的基本思想是基于分治的&#xff1a;略略略… // 递归地调用快速排序算法进行排序 public void quickSortFun(int[] nums, int low, int high) {if (low<high) {int middle partition(nums, low, high);quickSortFun(nums, low, midd…

3.Hadoop运行模式-完全分布式(重点)—xsync集群分发脚本、集群配置、SSH无密登录、启动集群

本文目录如下&#xff1a;4 完全分布式运行模式&#xff08;开发重点&#xff09;4.1 虚拟机准备4.2 scp(secure copy)安全拷贝4.3 rsync 远程同步工具4.4 **xsync集群分发脚本**4.4.1 需求分析&#xff1a;4.4.2 脚本实现4.4.3 xsync相关错误4.5 集群配置4.5.1 集群部署规划4.…

在Web端查看各节点状态(总结)

本文目录如下&#xff1a;5 在Web端查看各节点状态(总结)5.1 Web端查看HDFS的NameNode5.2 Web端查看HDFS的DataNode5.3 Web端查看HDFS的SecondaryNameNode5.4 Web端查看YARN的ResourceManage5.5 查看HDFS上传的文件5.6 查看历史服务器信息5.7 查看日志聚集信息5 在Web端查看各节…

Maven3.8.1下载、配置本地仓库、阿里云镜像、JDK版本

Maven3.8.1配置本地仓库、阿里云镜像、JDK版本 Maven版本&#xff1a;maven3.8.1 1.下载 点击进入Maven下载网址&#xff1a;Maven官方网址 | 或者&#xff1a;Maven详细下载列表也可以搜索Maven下载进入官方网站下载。这里博主下载的版本信息如下&#xff1a; 下载之后&…

elementui实现表格自定义排序

需求说明&#xff1a; 1、第一行不参与排序 2、实现带%排序 3、实现null值排序 4、实现值相等不排序 5、实现含有占位符‘–‘排序放到最后 效果图如下&#xff1a; <template> <div><template><el-table border :data"previewTableData" style…