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

Hadoop集群升级(3.1.3 -> 3.2.4)

升级前确认

旧版本:3.1.3
升级版本:3.2.4
旧版本安装路径:/ddhome/bin/hadoop/
新版本安装路径:/ddhome/bin/hadoop-3.2.4

安装新版本hadoop

  • 解压安装
# 解压安装包到相应目录下
tar -zxvf /ddhome/tools/hadoop-3.2.4.tar.gz -C /ddhome/bin/
# 复制3.1.3的配置文件到3.2.4中
cd /ddhome/bin/hadoop/etc/hadoop/
cp -r hdfs-site.xml core-site.xml mapred-site.xml yarn-site.xml workers /ddhome/bin/hadoop-3.2.4/etc/hadoop/
# 分发安装包到其余节点中
  • 备份NameNode元数据到3.2.4中
# 查看原NameNode中元数据的存储位置
# hdfs-site.xml<property><name>dfs.namenode.name.dir</name><value>file:/ddhome/bin/hadoop/tmp/hdfs/name</value></property>
# 备份(每台节点上执行)
cp -r /ddhome/bin/hadoop/tmp /ddhome/bin/hadoop-3.2.4/

增加升级滚动配置

  • 在新版本呢3.2.4的配置文件中(hdfs-site.xml)添加如下配置信息:
  	<!-- 增加滚动升级 --><property><name>dfs.namenode.duringRollingUpgrade.enable</name><value>true</value></property>

升级NameNode

  • 在原3.1.3版本中的hadoop相关环境中执行
/ddhome/bin/hadoop/bin/hdfs dfsadmin -rollingUpgrade prepare
/ddhome/bin/hadoop/bin/hdfs dfsadmin -rollingUpgrade query
# 查看NameNode节点的状态
hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2
  • 关闭standby节点中的NameNode
# 在standby节点中关闭NameNode进程
# 在原3.1.3版本中的hadoop相关环境中执行
/ddhome/bin/hadoop/bin/hdfs --daemon stop namenode
# 在新版本3.2.4中的hadoop相关环境中执行
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon start namenode -rollingUpgrade started -upgrade
# 执行完毕后,可以通过jps查看进程是否启动
  • 关闭active节点中的NameNode
# 在standby节点中关闭NameNode进程
# 在原3.1.3版本中的hadoop相关环境中执行
/ddhome/bin/hadoop/bin/hdfs --daemon stop namenode
# 在新版本3.2.4中的hadoop相关环境中执行
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon start namenode -rollingUpgrade started
# 执行完毕后,可以通过jps查看进程是否启动
  • 验证NameNode节点是否升级成功
# 先关闭active状态的NameNode
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop namenode
# 通过查看节点是否可以实现状态切换
hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2
# 如果可以切换,则启动刚关闭NameNode进程

升级DataNode

  • 查看IPC_PORT
# 查看hdfs-site.xml中的rpc相关设置<property><name>dfs.namenode.rpc-address.masters.nn1</name><value>ddcva:9000</value></property>
  • 执行DataNode升级命令
hdfs dfsadmin -shutdownDatanode <DATANODE_HOST:IPC_PORT>
hdfs dfsadmin -getDatanodeInfo <DATANODE_HOST:IPC_PORT> 
# 备注:此处的PORT每个版本不固定,使用get命令逐个获取监听PORT的返回值,有个返回值中携带版本号,就是这个PORT
  • 重启每台的DataNode进行
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop datanode
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon start datanode

完成升级滚动

  • 升级命令
/ddhome/bin/hadoop-3.2.4/bin/hdfs dfsadmin -rollingUpgrade Finalize
  • 完成namenode、datanode的升级后,需使用3.3.5的环境变量将journalnode,zkfc,resourcemanager,nodemanager,jobhistory等全部重启一遍,即可完成hadoop的全部滚动升级。
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon start journalnode
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon start zkfc/ddhome/bin/hadoop-3.2.4/bin/yarn --daemon start resourcemanager
/ddhome/bin/hadoop-3.2.4/bin/yarn --daemon start nodemanager
  • 关闭集群
# 关闭yarn
/ddhome/bin/hadoop-3.2.4/bin/yarn --daemon stop resourcemanager
/ddhome/bin/hadoop-3.2.4/bin/yarn --daemon stop nodemanager
# 关闭hdfs
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop datanode
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop namenode
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop zkfc
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop journalnode

恢复hadoop相关的配置文件路径

  • 首先关闭集群
  • 移动|重命名|删除 原3.1.3hadoop的相关文件
cd /ddhome/bin
mv hadoop hadoop-3.1.3
  • 重命名新版本的hadoop文件夹
cd /ddhome/bin
mv hadoop-3.2.4 hadoop
  • 启动hadoop集群并验证
# 全部开启
start-all.sh
# 此时namenode可能都启动不了,需单独启动
# 通过日志文件可以查看,dava中,执行
hdfs --daemon start namenode -rollingUpgrade started -upgrade
# 在ddvab中,同步主节点数据
hdfs namenode -bootstrapStandby
# 在ddavb中启动NameNode
hdfs --daemon start namenode
  • 后面再启动或者关闭hadoop集群的时候,可以通过start-all.sh和stop-all.sh进行启动与关闭

相关文章:

Hadoop集群升级(3.1.3 -> 3.2.4)

升级前确认 旧版本&#xff1a;3.1.3 升级版本&#xff1a;3.2.4 旧版本安装路径&#xff1a;/ddhome/bin/hadoop/ 新版本安装路径&#xff1a;/ddhome/bin/hadoop-3.2.4 安装新版本hadoop 解压安装 # 解压安装包到相应目录下 tar -zxvf /ddhome/tools/hadoop-3.2.4.tar.gz…...

(一)基于高尔夫优化算法GOA求解无人机三维路径规划研究(MATLAB)

一、无人机模型简介&#xff1a; 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献&#xff1a; [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、高尔夫优化算法GOA简介 高尔夫优化算法…...

ESP32-Web-Server编程-建立第一个网页

ESP32-Web-Server编程-建立第一个网页 HTTP 简述 可能你每天都要刷几个短视频&#xff0c;打开几个网页来娱乐一番。当你打开一个网络上的视频或者图片时&#xff0c;其实际发生了下面的流程&#xff1a; 其中客户端就是你的浏览器啦&#xff0c;服务器就是远程一个存放视频或…...

csgo/steam游戏搬砖项目的五大认知误区

CSGO/steam游戏搬砖项目的5大认知误区 1、卡价越高越难选品&#xff1f;越没利润&#xff1f; 2、明明buff卖价《 steam求购价&#xff0c;为什么还能赚钱&#xff1f; 3、实名资料少就没法批量操作账号&#xff1f; 4、本金少就没法玩&#xff1f; 5、这个项目的风险是不是很大…...

ASCII sorting

描述 输入一个字符串&#xff0c;对其字符进行排序&#xff0c;输出其字符按ASCII码升序排列。 输入 无空格字符串 输出 按ASCII码升序输出其字符。 样例输入 and 样例输出 adn code&#xff08;c版本&#xff09; #include<stdio.h> #include<stdlib.h> // qs…...

redis--高可用之持久化

redis高可用相关知识 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中&#xff0c;高可用的含义似乎要宽泛一些&#xff0c;除了保证提供正常服务( 如主…...

『VUE3 の 要点摘录』

✅v-model 用法 v-model 原生方法&#xff1a; v-model computed &#xff1a; 更改名字&#xff1a; 多个 v-model 绑定 处理 v-model 修饰符 ✅TS项目报错 1、TypeScript 错误 “Module ‘…index’ has no default export” // tsconfig.json {...."compilerOpt…...

Buzz库python代码示例

Buzz库来编写一个下载器程序。 php <?php require_once vendor/autoload.php; // 引入Buzz库 use Buzz\Browser; use Buzz\Message\Response; $browser new Browser(); // 设置 $browser->setHttpClient(new HttpClientProxy([ host > , port > , ])…...

Django路由分发

首先明白一点&#xff0c;Django的每一个应用下都可以有自己的templates文件夹&#xff0c;urls.py文件夹&#xff0c;static文件夹&#xff0c;基于这个特点&#xff0c;Django能够很好的做到分组开发&#xff08;每个人只写自己的app&#xff09;&#xff0c;作为老大&#x…...

【UGUI】中Content Size Fitter)组件-使 UI 元素适应其内容的大小

官方文档&#xff1a;使 UI 元素适应其内容的大小 - Unity 手册 必备组件&#xff1a;Content Size Fitter 通常&#xff0c;在使用矩形变换定位 UI 元素时&#xff0c;应手动指定其位置和大小&#xff08;可选择性地包括使用父矩形变换进行拉伸的行为&#xff09;。 但是&a…...

第二十章Java博客

如果一次只完成一件事情&#xff0c;很容易实现。但现实生活中&#xff0c;很多事情都是同时进行的。Java中为了模拟这种状态&#xff0c;引入了线程机制。简单地说&#xff0c;当程序同时完成多件事情时&#xff0c;就是所谓的多线程。多线程应用相当广泛&#xff0c;使用多线…...

实验一 SAS 基本操作和数据表的导入 2023-11-29

一、上机目的 熟悉SAS的集成环境并掌握它的基本操作。理解SAS程序的结构&#xff0c;理解其中的过程&#xff0c;过程选项&#xff0c;语句&#xff0c;语句选项等概念&#xff0c;掌握SAS编程技术。 二、上机内容 主要有SAS操作界面、SAS窗口操作、SAS菜单操作、SAS按钮操作…...

YOLOv5改进之ShuffleNetV2

目录 一、原理 网络结构 二、代码 三、应用到YOLOv5 一、原理...

tcp/ip协议 error=10022 Winsock.reg Winsock2.reg

tcp/ip协议 error10022 这2个注册表选项千万不能删除&#xff0c;否则上不了网。 按下windows键R键&#xff0c;输入regedit&#xff0c;打开注册表&#xff0c;在文件目录里找到如下两个文件夹&#xff0c;删除这两个文件夹。 路径&#xff1a;HKEY_LOCAL_MACHINE\System\C…...

【Redis基础】Redis基本的全局命令

✅作者简介&#xff1a;大家好&#xff0c;我是小杨 &#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; Redis基本的全局命令 1&#xff0c;KEYS命令 语法&#xff1a;KEYS pattern KEYS命令用来查询服…...

Vite 了解

1、vite 与 create-vite 的区别 2、vite 解决的部分问题 3、vite配置文件的细节 3.1、vite语法提示配置 3.2、环境的处理 3.3、环境变量 上图补充 使用 3.4、vite 识别&#xff0c;vue文件的原理 简单概括就是&#xff0c;我们在运行 npm润dev 的时候&#xff0c;vite 会搭起…...

oracle常用通用sql脚本——查询前用户的表空间信息

oracle常用通用sql脚本——查询前用户的表空间信息 一、查询前用户的表空间信息1、 查询当前用户的所有表空间2、 已G为单位3、 已MB为单位 二、以上俩段sql查出结果集存在差异的原因 一、查询前用户的表空间信息 1、 查询当前用户的所有表空间 SELECT * FROM dba_tablespace…...

Python内置类属性`__name__`属性的使用教程

更多Python学习内容&#xff1a;ipengtao.com Python中的__name__是一种内置的特殊属性&#xff0c;通常用于判断模块是作为主程序运行还是作为模块被导入。本文将深入讲解__name__属性的用法&#xff0c;通过丰富的示例代码展示其在不同情景下的应用。 模块作为主程序运行 当一…...

BUUCTF-pwn-ciscn_2019_ne_51

简单查看保护&#xff1a; 32为程序没有canary没有PIE&#xff0c;应该是简单的栈溢出。我们照着这个思路去找溢出点在哪&#xff0c;运行下程序看看什么情况&#xff1a; 程序上来是输入一个密码验证。随便输入下错误直接退出。因此我们需要到IDA中看看怎么回事&#xff1a; 主…...

【限时免费】20天拿下华为OD笔试之【哈希表】2023Q2B-选修课【欧弟算法】全网注释最详细分类最全的华为OD真题题解

文章目录 题目描述与示例题目描述输入输出示例一输入输出说明 示例二输入输出说明 解题思路代码PythonJavaC时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 题目描述与示例 题目描述 现有两门选修课&#xff0c;每门选修课都有一部分学生选修&#xff0c;每个学生都有…...

HunyuanVideo-Foley效果展示:钢琴独奏音效+琴房光影视频生成高清集锦

HunyuanVideo-Foley效果展示&#xff1a;钢琴独奏音效琴房光影视频生成高清集锦 1. 惊艳视听效果预览 HunyuanVideo-Foley模型在音乐场景的表现令人惊叹。当输入"钢琴独奏音乐会"这一简单描述时&#xff0c;模型能够同时生成高清视频和匹配的钢琴音效&#xff0c;创…...

DS3231M高精度RTC驱动开发与工业级实时时钟工程实践

1. DS3231M高精度实时时钟库深度解析与嵌入式工程实践DS3231M是Maxim Integrated&#xff08;现为Analog Devices&#xff09;推出的工业级IC接口实时时钟芯片&#xff0c;其核心价值在于2 ppm的温度补偿精度&#xff08;-40C至85C全温域&#xff09;、内置TCXO&#xff08;温度…...

环保EPC工程企业如何选型工程项目管理系统

环保EPC工程&#xff08;设计-采购-施工一体化&#xff09;具有项目周期长、场景复杂、合规要求高、多参与方协同难度大等核心特点&#xff0c;涵盖烟气处理、水处理、环保设备安装等细分场景&#xff0c;其项目管理涉及设计、采购、施工、安全、环保合规、成本管控等多个环节&…...

IDEA Services窗口:一站式掌控多服务启动与端口监控

1. 为什么你需要Services窗口 作为一个常年和微服务打交道的开发者&#xff0c;我最头疼的就是同时管理五六个服务模块。每次启动项目都要开一堆终端窗口&#xff0c;查看日志得像玩连连看一样在不同窗口间切换。更崩溃的是&#xff0c;当某个服务启动失败时&#xff0c;往往要…...

Claude Code 编程哲学正在改变一切:从“理解代码”到“跑通代码”

目录为什么传统 Coding Agent 开始失效向量化代码理解的瓶颈在哪里Claude Code 为什么选择“终端调试范式”CodeGraph&#xff1a;节省 Token&#xff0c;但解决不了核心问题真正的转变&#xff1a;从“看懂代码”到“跑通代码”这套范式对工程实践意味着什么一、为什么传统 Co…...

STM32串口通信优化:环形队列防数据丢失方案

1. STM32 串口数据接收的痛点与环形队列解决方案在嵌入式开发中&#xff0c;串口通信是最基础也最常用的外设之一。但新手常会遇到这样的问题&#xff1a;当大量数据快速涌入时&#xff0c;传统的串口接收方式很容易丢失数据。我曾经在一个工业传感器项目中就吃过这个亏——传感…...

如何高效使用付费墙绕过工具:Chrome扩展的完整实践指南

如何高效使用付费墙绕过工具&#xff1a;Chrome扩展的完整实践指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息获取日益重要的今天&#xff0c;付费墙成为许多用户访问优质…...

Go channel使用模式与最佳实践

Go语言中的channel是一种强大的并发原语&#xff0c;它不仅是goroutine之间通信的桥梁&#xff0c;更是实现高效并发模式的核心工具。无论是数据传递、同步控制还是任务编排&#xff0c;channel都能以简洁优雅的方式解决问题。本文将深入探讨几种典型的使用模式与最佳实践&…...

AI赋能开发:让快马智能生成telnet会话录制与自动化回放测试工具

最近在做一个网络设备的自动化测试项目&#xff0c;需要频繁通过telnet进行配置验证。传统的手工测试效率太低&#xff0c;于是尝试用AI辅助开发一个智能化的telnet会话录制与回放工具。整个过程在InsCode(快马)平台上完成&#xff0c;体验非常流畅。 需求分析 首先明确工具需要…...

Harness 中的事务边界定义:微事务与补偿

Harness 中的事务边界定义:微事务与补偿 引言 核心概念铺垫 在开始本文的核心内容——Harness 中的事务边界定义与微事务/补偿实践体系——之前,我们需要先锚定一组贯穿全文的、与 CI/CD 交付流水线强绑定的专属术语与业务通用术语的融合定义: 交付事务(Delivery Transac…...