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)
升级前确认 旧版本: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…...
(一)基于高尔夫优化算法GOA求解无人机三维路径规划研究(MATLAB)
一、无人机模型简介: 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、高尔夫优化算法GOA简介 高尔夫优化算法…...
ESP32-Web-Server编程-建立第一个网页
ESP32-Web-Server编程-建立第一个网页 HTTP 简述 可能你每天都要刷几个短视频,打开几个网页来娱乐一番。当你打开一个网络上的视频或者图片时,其实际发生了下面的流程: 其中客户端就是你的浏览器啦,服务器就是远程一个存放视频或…...
csgo/steam游戏搬砖项目的五大认知误区
CSGO/steam游戏搬砖项目的5大认知误区 1、卡价越高越难选品?越没利润? 2、明明buff卖价《 steam求购价,为什么还能赚钱? 3、实名资料少就没法批量操作账号? 4、本金少就没法玩? 5、这个项目的风险是不是很大…...
ASCII sorting
描述 输入一个字符串,对其字符进行排序,输出其字符按ASCII码升序排列。 输入 无空格字符串 输出 按ASCII码升序输出其字符。 样例输入 and 样例输出 adn code(c版本) #include<stdio.h> #include<stdlib.h> // qs…...
redis--高可用之持久化
redis高可用相关知识 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务( 如主…...
『VUE3 の 要点摘录』
✅v-model 用法 v-model 原生方法: v-model computed : 更改名字: 多个 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路由分发
首先明白一点,Django的每一个应用下都可以有自己的templates文件夹,urls.py文件夹,static文件夹,基于这个特点,Django能够很好的做到分组开发(每个人只写自己的app),作为老大&#x…...
【UGUI】中Content Size Fitter)组件-使 UI 元素适应其内容的大小
官方文档:使 UI 元素适应其内容的大小 - Unity 手册 必备组件:Content Size Fitter 通常,在使用矩形变换定位 UI 元素时,应手动指定其位置和大小(可选择性地包括使用父矩形变换进行拉伸的行为)。 但是&a…...
第二十章Java博客
如果一次只完成一件事情,很容易实现。但现实生活中,很多事情都是同时进行的。Java中为了模拟这种状态,引入了线程机制。简单地说,当程序同时完成多件事情时,就是所谓的多线程。多线程应用相当广泛,使用多线…...
实验一 SAS 基本操作和数据表的导入 2023-11-29
一、上机目的 熟悉SAS的集成环境并掌握它的基本操作。理解SAS程序的结构,理解其中的过程,过程选项,语句,语句选项等概念,掌握SAS编程技术。 二、上机内容 主要有SAS操作界面、SAS窗口操作、SAS菜单操作、SAS按钮操作…...
YOLOv5改进之ShuffleNetV2
目录 一、原理 网络结构 二、代码 三、应用到YOLOv5 一、原理...
tcp/ip协议 error=10022 Winsock.reg Winsock2.reg
tcp/ip协议 error10022 这2个注册表选项千万不能删除,否则上不了网。 按下windows键R键,输入regedit,打开注册表,在文件目录里找到如下两个文件夹,删除这两个文件夹。 路径:HKEY_LOCAL_MACHINE\System\C…...
【Redis基础】Redis基本的全局命令
✅作者简介:大家好,我是小杨 📃个人主页:「小杨」的csdn博客 🐳希望大家多多支持🥰一起进步呀! Redis基本的全局命令 1,KEYS命令 语法:KEYS pattern KEYS命令用来查询服…...
Vite 了解
1、vite 与 create-vite 的区别 2、vite 解决的部分问题 3、vite配置文件的细节 3.1、vite语法提示配置 3.2、环境的处理 3.3、环境变量 上图补充 使用 3.4、vite 识别,vue文件的原理 简单概括就是,我们在运行 npm润dev 的时候,vite 会搭起…...
oracle常用通用sql脚本——查询前用户的表空间信息
oracle常用通用sql脚本——查询前用户的表空间信息 一、查询前用户的表空间信息1、 查询当前用户的所有表空间2、 已G为单位3、 已MB为单位 二、以上俩段sql查出结果集存在差异的原因 一、查询前用户的表空间信息 1、 查询当前用户的所有表空间 SELECT * FROM dba_tablespace…...
Python内置类属性`__name__`属性的使用教程
更多Python学习内容:ipengtao.com Python中的__name__是一种内置的特殊属性,通常用于判断模块是作为主程序运行还是作为模块被导入。本文将深入讲解__name__属性的用法,通过丰富的示例代码展示其在不同情景下的应用。 模块作为主程序运行 当一…...
BUUCTF-pwn-ciscn_2019_ne_51
简单查看保护: 32为程序没有canary没有PIE,应该是简单的栈溢出。我们照着这个思路去找溢出点在哪,运行下程序看看什么情况: 程序上来是输入一个密码验证。随便输入下错误直接退出。因此我们需要到IDA中看看怎么回事: 主…...
【限时免费】20天拿下华为OD笔试之【哈希表】2023Q2B-选修课【欧弟算法】全网注释最详细分类最全的华为OD真题题解
文章目录 题目描述与示例题目描述输入输出示例一输入输出说明 示例二输入输出说明 解题思路代码PythonJavaC时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 题目描述与示例 题目描述 现有两门选修课,每门选修课都有一部分学生选修,每个学生都有…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
