HDFS NameNode HA(高可用)

HDFS NameNode HA(高可用)

原创

wx62be9d88ce294博主文章分类:大数据 ©著作权

文章标签 hdfs hadoop big data 单点故障 文章分类 Hadoop 大数据

©著作权归作者所有:来自51CTO博客作者wx62be9d88ce294的原创作品,请联系作者获取转载授权,否则将追究法律责任

1.NameNode HA概述

所谓HA(High Availablity [əˌveɪlə’bɪləti] ),即高可用(7*24小时服务不中断)。通过主备NameNode解决,如果主NameNode发生故障,则切换到备NameNode上,从而解决NameNode单点故障的问题。

  1. 实现高可用最关键的目的是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。
  2. Hadoop1.x在HDFS集群中NameNode存在单点故障;Hadoop2.0+可以通过NameNode HA解决单点故障的问题。
  3. Hadoop2.x中支持两个NameNode做HA,一个主,一个备。Hadoop3.x中支持两个或两个以上的NameNode做HA,一主一备,或一主多备。
  4. NameNode主要在以下两个方面影响HDFS集群

  5. NameNode机器发生意外,如宕机,集群将无法使用,直到管理员修复重启后。

  6. NameNode机器需要升级,包括软件、硬件升级,此时集群也将无法使用

  7. HDFS HA功能通过配置Active/Standby两个NameNodes实现在集群中对NameNode的热备来解决上述问题。如果出现故障,如机器崩溃或机器需要升级维护,这时可通过此种方式将NameNode很快的切换到另外一台机器。

2.手动NameNode HA概述

HDFS NameNode HA(高可用)
fsimage+edits log需要由StandbyNameNode做合并工作,fsimage推送的时机可以通过参数来调整:
dfs.namenode.checkpoint.period   1小时dfs.namenode.checkpoint.txns    100 0000事务dfs.namenode.checkpoint.check.period  3s
  1. 一个NameNode进程处于Active状态,另1个NameNode进程处于Standby状态。Active的NameNode负责处理客户端的请求。
  2. Active的NN修改了元数据之后,会在JNs的半数以上的节点上记录这个日志。Standby状态的NameNode会监视任何对JNs上edit log的更改。一旦edits log出现更改,Standby的NN就会根据edits log更改自己记录的元数据。
  3. 当发生故障转移时,Standby主机会确保已经读取了JNs上所有的更改来同步它本身记录的元数据,然后手动完成由Standby状态切换为Active状态。
  4. 为了确保在发生故障转移操作时拥有相同的数据块位置信息,DNs向所有NN发送数据块位置信息和心跳数据。
  5. JNS只允许一台NameNode向JNs写edits log数据,这样就能保证不会发生”脑裂”。
  6. 手动切换:通过命令实现主备之间的切换,可以用HDFS升级等场合

3.自动NameNode HA概述

HDFS NameNode HA(高可用)
主备NameNode自动切换解决单点故障
  1. 主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换
  2. 所有DataNode同时向两个NameNode汇报数据块信息(位置)
  3. JNN:集群(属性)同步edits log
  4. standby:备,完成了fsimage+edits.log文件的合并产生新的fsimage,推送回ANN
  5. 自动切换:基于Zookeeper自动切换方案
  6. ZooKeeper Failover Controller:监控NameNode健康状态,并向Zookeeper注册NameNode。NameNode挂掉后,ZKFC为NameNode竞争锁,获得ZKFC 锁的NameNode变为active

  7. 收藏
  8. 评论
  9. *举报

上一篇:HDFS Federation联邦

下一篇:编写HDFS HA(高可用)启动和关闭脚本

Original: https://blog.51cto.com/u_15704423/5434928
Author: wx62be9d88ce294
Title: HDFS NameNode HA(高可用)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/65901/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Dubbo进阶(一)之Dubbo基础回顾

    (一)简单入门案例完整代码 (二)最接近官方的入门案例注解形式完整代码 (三)最接近官方的入门案例XML形式完整代码 (四)整合MyBatis实现用户注册的Dubbo入门案例完整代…

    大数据 2023年3月4日
    010
  • java.lang.RuntimeException: Unable to fence NameNode at hadoop1/192.168.43.100:8020

    2021-11-23 15:13:08878警告org.apache.hadoop.ha.NodeFencer:围栏方法org.apache.hadoop.ha.SshFenceB…

    大数据 2023年2月12日
    013
  • SQLite学习手册(一)

    一、获取表的Schema信息: 1). 动态创建表。2). 根据sqlite3提供的API,获取表字段的信息,如字段数量以及每个字段的类型。3). 删除该表。见以下代码及关键性注释…

    大数据 2023年2月7日
    014
  • 原生Hive的启动和停止详解

    原生的Hive没有提供启动的脚本,需要调用命令来启动和停止,启动用nohup结合hive命令来启动,启动Hive的时候,需要把metastore和hiveserver2一起启动,分…

    大数据 2023年2月8日
    022
  • Redis基础项目:黑马程序员

    1.基于session实现短信流程先导入redis素材 黑马点评的素材 以及sql1.sql版本5.7以下的需要把 timestamp修改称 datetime ,2.创建时间中的 …

    大数据 2023年2月14日
    09
  • hive入门及dbeaver连接hive

    学HIVE上官网 hadoop广义:是大数据生态圈,其中hive是使用SQL完成大数据统计分析的工具hadoop狭义:HDFS MR yarnhive是Facebook公司开源的工…

    大数据 2023年2月8日
    032
  • 微服务 Spring Boot 整合Redis 实现优惠卷秒杀 一人一单

    CSDN话题挑战赛第2期参赛话题:Java技术分享 文章目录 一、什么是全局唯一ID * ⛅全局唯一ID ⚡Redis实现全局唯一ID 二、环境准备 三、实现秒杀下单 四、库存超卖…

    大数据 2023年2月8日
    0176
  • ubuntu sqlite3源码编译

    1、首先从SQLite Download Page网站下载最新sqlite3源码, 2、选择sqlite3.c和sqlite3.h,sqlite3ext.h加载到工程中。 3、编写…

    大数据 2023年2月7日
    028
  • mapjoin,bucket mapjoin,SMB join测试

    mapjoin(大表join小表) 1、造一个1千万条数据的表备用 先借用sparksql界面运行,不要用hive运行。因为sparksql支持sequence函数,hive不支持…

    大数据 2023年2月11日
    05
  • Fire框架–Spark读写Hbase

    HBase 读写 ​ HBase对更新和点查具有很好的支持,在实时计算场景下也是应用十分广泛的。为了进一步简化HBase读写api,提高开发效率,fire框架对HBase API进…

    大数据 2023年2月19日
    013
  • OpenFeign超时控制

    在上一篇的OpenFeign服务调用中,虽然可以使用OpenFeign来实现服务之间的调用,但是一旦调用提供服务方的时候超时就会报错;所以这里就需要了解到OpenFeign的超时控…

    大数据 2023年3月2日
    09
  • 数据库MySQL—-(二)语句

    文章目录 MySQL语句 * 1.查询语句 – (1)简单的查询语句 (2)条件查询 (3)条件查询in(等同于or) (4)模糊查询 like? 2.排序 3.函数 …

    大数据 2023年2月24日
    015
  • 同盾大数据平台

    同盾大数据平台 一、平台首页 * 1.1 创建作业进行编程 – 1.1.1 创建作业 1.1.2 编码时的注意事项 + 1.1.2.1 一定要养成及时保存文件的习惯 1…

    大数据 2023年2月20日
    012
  • sqlite api java_数据库——SQLite—->Java篇

    SQLite SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌…

    大数据 2023年2月23日
    013
  • Hiv3源码编译支持用久支持自定义UDF

    下载hive源码 cd /rootwget https://codeload.github.com/apache/hive/tar.gz/rel/release-3.1.1wget…

    大数据 2023年2月12日
    012
  • Room数据库学习记录

    dependencies { def room_version = "2.4.1" implementation "androidx.room:roo…

    大数据 2023年2月7日
    015
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总