当前位置: 首页 > news >正文

【大数据】HDFS管理员 HaAdmin 集群高可用命令详细使用说明

高可用HaAdmin使用

  • 概览
  • 使用说明
    • checkHealth
    • 查看NameNode的状态
      • 所有NN的服务状态
      • 查询指定NN的服务状态
    • failover
    • transitionToActive

概览

HDFS高可用特性解决了集群单点故障问题,通过提供了两个冗余的NameNode以主动或被动的方式用于热备,使得集群既可以从机器宕机中快速恢复,也可以优雅的在有计划的维护时快速恢复。

使用说明

此命令调用的是 org.apache.hadoop.hdfs.tools.DFSHAAdmin

hdfs haadmin -transitionToActive <serviceId> [--forceactive]hdfs haadmin -transitionToStandby <serviceId>hdfs haadmin -transitionToObserver <serviceId>hdfs haadmin -failover [--forcefence] [--forceactive] <serviceId> <serviceId>hdfs haadmin -getServiceState <serviceId>hdfs haadmin -getAllServiceStatehdfs haadmin -checkHealth <serviceId>hdfs haadmin -help <command>

checkHealth

监测NN健康状态,类似心跳检测一下,判断服务时否正常

如下 nn1 服务异常时


# 开启健康监测
[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -checkHealth nn1
2023-03-11 09:06:16,517 INFO ipc.Client: Retrying connect to server: hadoop-1/192.168.1.1:8020. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=1, sleepTime=1000 MILLISECONDS)
Operation failed: Call From hadoop-client.local/192.168.1.100 to hadoop-1:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

如下 nn2 服务正常时


# 开启健康监测 ,无任何异常就是正常
[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -checkHealth nn2

查看NameNode的状态

所有NN的服务状态

执行hdfs haadmin -getAllServiceState命令,返回所有NameNode的高可用状态。

[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -getAllServiceState
hadoop-1:8020                                      standby
hadoop-3:8020                                      active

查询指定NN的服务状态

执行hdfs haadmin -getServiceState <serviceId>命令,返回active或者standby。

[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -getServiceState nn1
standby
[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -getServiceState nn2
active

failover

切换NameNode的主备状态,一般推荐用此方式来切换主备

执行hdfs haadmin -failover <serviceId of current active> <serviceId of new active>命令,切换NameNode的主备状态。

例如,nn1当前是Active NameNode,想让nn2成为新的Active NameNode,可执行以下命令。如果nn2当前已是Active NameNode,执行以下命令后,nn2仍为新的Active NameNode。

[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -getAllServiceState
hadoop-1:8020                                      standby
hadoop-3:8020                                      active# 将 nn1 变为 主
[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -failover nn2 nn1
Failover to NameNode at /192.168.1.1:8020 successful
[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -getAllServiceState
spark-31:8020                                      active
spark-33:8020                                      standby# 将 nn2 变为 主
[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -failover nn1 nn2
Failover to NameNode at /192.168.1.3:8020 successful
[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -getAllServiceState
spark-31:8020                                      standby
spark-33:8020                                      active

transitionToActive

将给定的NameNode切换成主,不会做fencing(和failover有区别的点)

当开启了故障自动切换failover(dfs.ha.automatic-failover.enabled=true)之后,无法手动进行。想要 transitionToActive 切换主,就需要 带上 强制手动的标志 --forcemanual

[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -transitionToActive nn1
Automatic failover is enabled for NameNode at /192.168.1.3:8020
Refusing to manually manage HA state, since it may cause
a split-brain scenario or other incorrect state.
If you are very sure you know what you are doing, please
specify the --forcemanual flag.

此时 nn1: standby nn2: active

[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -getAllServiceState
hadoop-1:8020                                      standby
hadoop-3:8020                                      active[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -transitionToActive --forcemanual nn1
You have specified the --forcemanual flag. This flag is dangerous, as it can induce a split-brain scenario that WILL CORRUPT your HDFS namespace, possibly irrecoverably.It is recommended not to use this flag, but instead to shut down the cluster and disable automatic failover if you prefer to manually manage your HA state.You may abort safely by answering 'n' or hitting ^C now.Are you sure you want to continue? (Y or N) y
2023-03-11 10:05:09,570 WARN ha.HAAdmin: Proceeding with manual HA state management even though
automatic failover is enabled for NameNode at /192.168.1.1:8020
transitionToActive: Node nn2 is already active
Usage: haadmin [-ns <nameserviceId>] [-transitionToActive [--forceactive] <serviceId>]

此时提示的是 nn2 已经是 active,切换不起作用

当active节点正常时,使用hdfs haadmin -transitionToActive命令对两个namenode节点切换都不起作用.

此时试试将 active 状态切换成 standby

[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -getAllServiceState
hadoop-1:8020                                      standby
hadoop-3:8020                                      active[root@hadoop-1 hadoop-3.3.1]# bin/hdfs haadmin -transitionToStandby --forcemanual nn2
You have specified the --forcemanual flag. This flag is dangerous, as it can induce a split-brain scenario that WILL CORRUPT your HDFS namespace, possibly irrecoverably.It is recommended not to use this flag, but instead to shut down the cluster and disable automatic failover if you prefer to manually manage your HA state.You may abort safely by answering 'n' or hitting ^C now.Are you sure you want to continue? (Y or N) y
2023-03-11 10:09:40,129 WARN ha.HAAdmin: Proceeding with manual HA state management even though
automatic failover is enabled for NameNode at /192.168.1.3:8020[root@hadoop-1 hadoop-3.3.1]#  bin/hdfs haadmin -getAllServiceState
hadoop-1:8020                                      active
hadoop-3:8020                                      standby

此时提示的是 nn2 已经是 standby,切换生效

当active节点正常时,执行hdfs haadmin -transitionToStandby命令可以将active的namenode节点转换成standby状态。

相关文章:

【大数据】HDFS管理员 HaAdmin 集群高可用命令详细使用说明

高可用HaAdmin使用概览使用说明checkHealth查看NameNode的状态所有NN的服务状态查询指定NN的服务状态failovertransitionToActive概览 HDFS高可用特性解决了集群单点故障问题&#xff0c;通过提供了两个冗余的NameNode以主动或被动的方式用于热备&#xff0c;使得集群既可以从…...

京区航天研究所 哪些比较好的研究所?

第一梯队&#xff1a;一院一部、战术武器部、10所、12所、研发部、空天部&#xff0c;五院501所&#xff08;总体设计部&#xff09;、502所、通导部、遥感部、钱室&#xff08;所人均年薪35w-50w级别&#xff09; 第二梯队&#xff1a;一院14所、15所&#xff0c;二院未来实验…...

Nacos配置拉取及配置动态刷新原理【源码阅读】

Nacos配置拉取及配置刷新原理 一、初始化时获取配置文件 背景 SpringCloud项目中SpringBoot在启动阶段除了会创建SpringBoot容器&#xff0c;还会通过bootstrap.yml构建一个SpringCloud容器&#xff0c;之后会在准备上下文阶段通过SPI加载实现类后&#xff0c;会进行配置合并…...

第十届省赛——9等差数列(集合做法)

题目&#xff1a;试题 I: 等差数列时间限制: 1.0s 内存限制: 512.0MB 本题总分&#xff1a;25 分【问题描述】数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列&#xff0c;只记得其中 N 个整数。现在给出这 N 个整数&#xff0c;小明想知道包含这…...

《数据分析-JiMuReport03》JiMuReport报表设计入门介绍-新建报表

报表设计 1 新建报表 1.1 创建新的数据报表 以数据报表为例&#xff0c;简单介绍创建报表的过程 1.2 进入报表设计页面 如下图可见&#xff0c;主要分为四个模块&#xff1a; 模块一(左) 数据集管理报表信息数据字典 模块二(右) 这部分是对数据报表的进一步优化 模块三(上…...

从功能测试进阶自动化测试,爆肝7天整理出这一份超全学习指南【附网盘资源】

因为我最近在分享自动化测试技术&#xff0c;经常被问到&#xff1a;功能测试想转自动化&#xff0c;请问应该怎么入手&#xff1f;有没有好的资源推荐&#xff1f;那么&#xff0c;接下来我就结合自己的经历聊一聊我是如何在工作中做自动化测试的。&#xff08;学习路线和网盘…...

CNN神经网络——手写体识别

目录 Load The Datesets Defining,Training,Measuring CNN Algorithm Datasets GRAET HONOR TO SHARE MY KNOWLEDGE WITH YOU This paper is going to show how to use keras to relize a CNN model for digits classfication Load The Datesets The datasets files are …...

python调试模块ipdb

1. 调试python ipdb是用来python中用以交互式debug的模块&#xff0c;可以直接利用pip安装; 其功能类似于pycharm中 python控制台&#xff0c; 而使用ipdb 的优点&#xff0c;便是直接在代码中调试&#xff0c; 避免了在python控制台&#xff0c;或者重新设置一些简单变量。…...

【数据库】聊聊MySQL的日志,binlog、undo log、redo log

日志 在数据库中&#xff0c;如何保证数据的回滚&#xff0c;以及数据同步&#xff0c;系统宕机后可以恢复到原来的状态&#xff0c;其实就是依靠日志。 其中bin log是Server层特有的&#xff0c;redo log是Innodb存储引擎特有的。 bin log 是逻辑日志&#xff0c;主要记录这条…...

aws dynamodb java低等级api和高级客户端api的使用

参考资料 https://docs.amazonaws.cn/zh_cn/sdk-for-java/latest/developer-guide/setup-project-maven.html 初始化环境 创建maven项目 mvn org.apache.maven.plugins:maven-archetype-plugin:3.1.2:generate \-DarchetypeArtifactId"maven-archetype-quickstart&quo…...

Kafka中那些巧妙的设计

一、kafka的架构 Kafka是一个分布式、多分区、基于发布/订阅模式的消息队列&#xff08;Message Queue&#xff09;&#xff0c;具有可扩展和高吞吐率的特点。 kafka中大致包含以下部分&#xff1a; Producer&#xff1a; 消息生产者&#xff0c;向 Kafka Broker 发消息的客户…...

《JavaEE》进程和线程的区别和联系

&#x1f451;作者主页&#xff1a;Java冰激凌 &#x1f4d6;专栏链接&#xff1a;JavaEE 目录 进程是什么&#xff1f; 线程是什么&#xff1f; 进程和线程之间的联系~ ps1&#xff1a;假设我们当前的大兴国际机场有一条登机口可以登入飞机 ps2&#xff1a;我们为…...

Matlab生成sinc信号

Matlab生成sinc信号 在Matlab中生成sinc信号非常容易。首先&#xff0c;我们需要了解什么是sinc波形。 sinc波形是一种理想的信号&#xff0c;它在时域上是一个宽度为无穷的矩形函数&#xff0c;而在频域上则是一个平的频谱。它的公式为&#xff1a; sinc⁡(x)sin⁡(πx)πx\…...

进程与线程区别与联系

进程与线程的区别与联系线程线程介绍为什么要有线程呢?线程与进程的区别于联系(重点)线程 线程介绍 我们知道进程就是运行起来的程序, 那线程又是什么呢? 一个线程就是一个 “执行流”. 每个线程之间都可以按照顺序执行自己的代码. 多个线程之间 “同时” 执行着多份代码. …...

使用vbscript.regexp实现VBA代码格式化

Office自带的VBE在编辑代码时&#xff0c;没有自动完成代码缩进的功能&#xff0c;而我们在网上找到的VBA代码&#xff0c;经常没有实现良好的自动缩进&#xff0c;复制到VBE后&#xff0c;可读性较差。本文介绍的宏&#xff0c;通过使用vbscript.regexp对象&#xff0c;利用正…...

选择结构习题:百分值转换成其相应的等级

Description 编一程序&#xff0c;输入一个百分制的成绩(整数类型)&#xff0c;按要求输出相应的字符串信息&#xff0c;对应关系为&#xff1a;     excellent 90-100     good 80-89     middle 70-79     pass 60-69 fail 60以下或100以上 Input 输入仅一行&…...

c# 源生成器

本文概述了 .NET Compiler Platform&#xff08;“Roslyn”&#xff09;SDK 附带的源生成器。 通过源生成器&#xff0c;C# 开发人员可以在编译用户代码时检查用户代码。 生成器可以动态创建新的 C# 源文件&#xff0c;这些文件将添加到用户的编译中。 这样&#xff0c;代码可以…...

[N1CTF 2018]eating_cms1

一个cms&#xff0c;先打开环境试了一下弱口令&#xff0c;无效&#xff0c;再试一下万能密码&#xff0c;告诉我有waf&#xff0c;先不想怎么绕过&#xff0c;直接开扫&#xff08;信息收集&#xff09;访问register.php注册一个账号进行登录上面的链接尝试用php读文件http://…...

数据结构与算法基础(王卓)(15):KMP算法详解(含速成套路和详细思路剖析)

如果时间不够&#xff0c;急&#xff08;忙&#xff09;着应付考试没心思看&#xff0c;直接参考&#xff08;照抄&#xff09;如下套路&#xff1a; PART 1&#xff1a;关于next [ j ] PPT&#xff1a;P30 根据书上以及视频上给出的思路&#xff08;提醒&#xff09;&#x…...

【互联网架构】聊一聊所谓的“跨语言、跨平台“

文章目录序跨语言跨平台【饭后杂谈】为什么有人说Java的跨平台很鸡肋&#xff1f;序 很多技术都具有跨语言、跨平台的特点 比如JSON是跨语言的、Java是跨平台的、UniAPP、Electron是跨平台的 跨语言和跨平台&#xff0c;是比较重要的一个特性。这些特性经常能够决定开发者是否…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...