Hadoop集群的高可用(HA):NameNode和resourcemanager高可用的搭建
文章目录
- 一、NameNode高可用的搭建
- 1、免密配置
- 2、三个节点都需要安装psmisc
- 3、检查三个节点是否都安装jdk以及zk
- 4、检查是否安装了hadoop集群
- 5、修改hadoop-env.sh
- 6、修改core-site.xml
- 7、修改hdfs-site.xml
- 8、检查workers 文件是否为三台服务
- 9、分发给其他两个节点
- 10、初始化ZKFC在zk中的Znode信息
- 11、在三台服务器上启动journalnode
- 12、对集群进行namenode的格式化
- 13、启动hdfs
- 14、启动第二个namenode
- 15、第二次只需要正常启动zk和hadoop即可
- 二、resourcemanager高可用搭建
- 1、检查mapred-site.xml
- 2、修改yarn-site.xml
- 3、分发
- 4、启动yarn
- 5、查看是否配置成功
- 6、遇到的问题
一、NameNode高可用的搭建
1、免密配置
2、三个节点都需要安装psmisc
yum install -y psmisc
3、检查三个节点是否都安装jdk以及zk
4、检查是否安装了hadoop集群
如果以前安装过了,则需要清空数据:
1.先停止集群:
stop-all.sh
2.清理集群中的data数据:
rm -rf /opt/installs/hadoop/tmp/ /opt/installs/hadoop/logs/
5、修改hadoop-env.sh
export JAVA_HOME=/opt/installs/jdk/ export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=rootexport HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
6、修改core-site.xml
<!--覆盖-->
<configuration><!--hdfs入口,设置虚拟地址,具体地址后面配置--><property><name>fs.defaultFS</name><value>hdfs://hdfs-cluster</value></property><!--hdfs集群的文件位置--><property><name>hadoop.tmp.dir</name><value>/opt/installs/hadoop/tmp</value></property><!--hdfs要访问zookeeper集群--><property><name>ha.zookeeper.quorum</name><value>node01:2181,node02:2181,node03:2181</value></property>
</configuration>
7、修改hdfs-site.xml
<!--覆盖-->
<configuration><!-- 副本数 --><property><name>dfs.replication</name><value>3</value></property><!-- 定义dhfs入口的命名服务 --><property><name>dfs.nameservices</name><value>hdfs-cluster</value></property><!-- 定义hdfs入口的命名服务下虚拟ip--><property><name>dfs.ha.namenodes.hdfs-cluster</name><value>nn1,nn2</value></property><!-- 虚拟ip地址1 RPC入口 --><property><name>dfs.namenode.rpc-address.hdfs-cluster.nn1</name><value>node01:9820</value></property><!-- 虚拟ip地址1 HTTP入口 --><property><name>dfs.namenode.http-address.hdfs-cluster.nn1</name><value>node01:9870</value></property><!-- 虚拟ip地址2 PRC入口 --><property><name>dfs.namenode.rpc-address.hdfs-cluster.nn2</name><value>node02:9820</value></property><!-- 虚拟ip地址1 HTTP入口 --><property><name>dfs.namenode.http-address.hdfs-cluster.nn2</name><value>node02:9870</value></property><!-- 定义QJN在linux中保存文件磁盘目录 --><property><!-- Journal Edit Files 的存储目录:() --><name>dfs.journalnode.edits.dir</name><value>/opt/installs/journalnode/data/</value></property><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://node01:8485;node02:8485;node03:8485/hdfs-cluster</value></property><!-- 是否开启故障切换 --><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property><!-- 基于zookeeper的故障切换的代码类 --><property><name>dfs.client.failover.proxy.provider.hdfs-cluster</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><!-- 远程杀死namenode方式(防止namenode假死,导致双主出现) --><property><name>dfs.ha.fencing.methods</name><value>sshfence</value></property><!-- 指定私钥的文件目录,使用免密登录杀死NN进程 --><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value></property><!-- 可以在hdfs上点击结果查看--><property><name>dfs.webhdfs.enabled</name><value>true</value></property>
</configuration>
8、检查workers 文件是否为三台服务
9、分发给其他两个节点
分发脚本编写地址:脚本编写链接
cd /opt/installs/hadoop/etc/hadoopxsync.sh hadoop-env.sh core-site.xml hdfs-site.xml
10、初始化ZKFC在zk中的Znode信息
1.先启动zk
zk.sh start
2.在主节点进行即可
hdfs zkfc -formatZK
11、在三台服务器上启动journalnode
hadoop-daemon.sh start journalnode
12、对集群进行namenode的格式化
hdfs namenode -format
13、启动hdfs
14、启动第二个namenode
1.第一次需要运行如下命令,以后不需要:
hdfs namenode -bootstrapStandby
2.接着,启动第二个namenode:
hadoop-daemon.sh start namenode
15、第二次只需要正常启动zk和hadoop即可
需要先启动zk,再启动hadoop
namenode的web界面:node01:9870
二、resourcemanager高可用搭建
1、检查mapred-site.xml
里面只有yarn配置和historyServer的配置,不需要修改
2、修改yarn-site.xml
以前配置的yarn以及日志服务的配置不动,添加ha的相关配置即可:
<configuration><!--配置resourcemanager的HA--><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!-- RM 集群标识 --><property><name>yarn.resourcemanager.cluster-id</name><value>yarn-cluster</value></property> <!-- RM 的逻辑 ID 列表 --><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property> <!-- RM1 的主机地址 --><property><name>yarn.resourcemanager.hostname.rm1</name><value>node01</value></property><!-- RM1 的主机web管理界面地址 --> <property><name>yarn.resourcemanager.webapp.address.rm1</name><value>node01:8088</value></property><!-- RM2 的主机地址 --><property><name>yarn.resourcemanager.hostname.rm2</name><value>node02</value></property> <!-- RM2 的主机web管理界面地址 --> <property><name>yarn.resourcemanager.webapp.address.rm2</name><value>node02:8088</value></property><!-- ZooKeeper 集群的地址 --> <property><name>yarn.resourcemanager.zk-address</name><value>node01:2181,node02:2181,node03:2181</value></property> <!-- 启用自动恢复 --> <property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value></property> <!-- 用于yarn故障转移持久化zk的类 --><property><name>yarn.resourcemanager.store.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property> <!-- 关闭虚拟内存检查 -->
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property></configuration>
3、分发
cd /opt/installs/hadoop/etc/hadoop/# 只需要同步一个,因为另一个根本没有修改。
xsync.sh yarn-site.xml
4、启动yarn
5、查看是否配置成功
yarn rmadmin -getAllServiceState
resourcemanager的web界面:node01:8088
6、遇到的问题
假如你在启动过程中,发现resourcemanager有两个,但是都是standby,有可能是版本兼容问题:
hadoop3.1.6 需要兼容 zookeeper 3.4.10 hadoop3.3.1 需要兼容 zookeeper 3.6.4 ,否则就会有问题。
namenode 高可用没问题,resourcemanager的高可用有问题。
相关文章:
Hadoop集群的高可用(HA):NameNode和resourcemanager高可用的搭建
文章目录 一、NameNode高可用的搭建1、免密配置2、三个节点都需要安装psmisc3、检查三个节点是否都安装jdk以及zk4、检查是否安装了hadoop集群5、修改hadoop-env.sh6、修改core-site.xml7、修改hdfs-site.xml8、检查workers 文件是否为三台服务9、分发给其他两个节点10、初始化…...
支付宝沙箱环境 支付
一 什么是沙箱: 沙箱环境是支付宝开放平台为开发者提供的安全低门槛的测试环境 支付宝正式和沙箱环境的区别 : AI: 从沙箱到正式环境: 当应用程序开发完成后,需要将应用程序从沙箱环境迁移到正式环境。 这通常涉及…...
获取unity中prefab的中文文本内容以及和prefab有关的问题
背景1:经常会在开发中遇到策划需要改某个界面,但是我们不知道那是什么界面,只看到一些关键字比如圣诞活动,那这样我就可以轻易找到这个预设了。另外还可以扩展就是收集项目中的所有中文文本然后归集到多语言表中,然后接…...
Web自动化中常用XPath定位方式
在进行Web自动化测试时,元素定位是一个至关重要的环节。XPath(XML Path Language)是一种用于在XML文档中定位节点的语言。在Web自动化中,XPath广泛应用于定位HTML元素。本文将详细介绍几种常用的XPath定位方式,包括绝对…...
Unity3D播放GIF图片使用Animation来制作动画
系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、下载GIF动图,用PS制作导出帧动画图片👉二、使用Animation制作动画👉三、脚本控制动画播放👉壁纸分享👉总结👉前言 unity播放gif图片,本身是不支持的,但是可以使用其他方法来实现, 1.有一种使用System…...
redo log 和 bin log 的两阶段提交
两阶段提交的过程 当事务提交后,有一个两阶段提交策略。 在开启两阶段提交时,会开启一个 XA 事务(宏观上的事务), Prepare 阶段:将 redo log 的状态设置为 prepare,然后将 事务XID 写入 redo…...
Go基础学习07-map注意事项;多协程对map的资源竞争;sync.Mutex避免竟态条件
文章目录 Go中map使用以及注意事项map使用时的并发安全问题 Go中map使用以及注意事项 Go语言中map使用简单示例: func main() {var mp map[string]int// mp : map[string]int{}val, ok : mp["one"]if ok {fmt.Println(val)} else {fmt.Println(val)}mp[…...
远程服务器安装anaconda并创建虚拟环境
1、承接上文新用户zrcs,在服务器的zrcs文件夹下直接下载anaconda(很慢): wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh 或者选择本地下载,清华大学开源软件镜像站:https:/…...
什么是IIC通信协议?
IIC(Inter-Integrated Circuit)通信协议,又称为I2C(Inter-Integrated Circuit 2)协议,是一种广泛使用的串行通信协议。它由飞利浦半导体公司(现NXP Semiconductors)开发,…...
P3131 [USACO16JAN] Subsequences Summing to Sevens S Python题解
[USACO16JAN] Subsequences Summing to Sevens S 题目描述 Farmer John’s N N N cows are standing in a row, as they have a tendency to do from time to time. Each cow is labeled with a distinct integer ID number so FJ can tell them apart. FJ would like to ta…...
鸿蒙NEXT开发-ArkUI(基于最新api12稳定版)
注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…...
Matplotlib 使用 LaTeX 渲染图表中的文本、标题和数学公式
Matplotlib 使用 LaTeX 渲染图表中的文本、标题和数学公式 Matplotlib 是一个功能强大的 Python 库,用于绘制各种高质量的图表和图形。在许多科研和技术文档中,数学公式是不可或缺的一部分,LaTeX 提供了精美的数学公式渲染能力。Matplotlib …...
Android 安卓内存安全漏洞数量大幅下降的原因
谷歌决定使用内存安全的编程语言 Rust 向 Android 代码库中写入新代码,尽管旧代码(用 C/C 编写)没有被重写,但内存安全漏洞却大幅减少。 Android 代码库中每年发现的内存安全漏洞数量(来源:谷歌)…...
c++primier第十二章类和动态内存
本章内容包括: 对类成员使用动态内存分配隐式和显式地复制构造函数隐式和显式地重载赋值操作符在构造函数中使用new所必须完成的工作使用静态类成员 将布局new操作符用于对象使用指向对象的指针实现队列抽象数据类型(ADT) 动态内存和类 复习范例和静态类成员 首…...
Ansible学习之ansible-pull命令
想要知道ansible-pull是用来做什么的,就需要了解Ansible的工作模,Ansible的工作模式有两种: push模式 push推送,这是Ansible的默认模式,在主控机上编排好playbook文件,push到远程主机上来执行。pull模式 p…...
Linux:磁盘管理
一、静态分区管理 静态的分区方法不可以动态的增加或减少分区的容量。 1、磁盘分区-fdisk 该命令是用于查看磁盘分区情况,和分区管理的命令 命令格式:fdisk [选项] 设备文件名常用命令: -h:查看分区信息 fdisk系统常用命令&…...
FP7209: 用于紫外线消毒灯的 升压LED恒流驱动芯片
现在社会对于居家消毒也越发重视起来。而居家消毒除了75%浓度酒精及各类消毒液外,利用紫外线灯给衣物表面、房间消毒也是一种很好的选择。FP7209 定位于低压线性恒流驱动,精度高、外围电路简单、使用方便且可靠性高,更可广泛应用于商业照明系…...
【华为HCIP实战课程二】OSPF基础介绍和OSPF RID NBMA配置详解
一、OSPF多区域 自治系统(Autonomous System) 一个自治系统是指使用同一种路由协议交换路由信息的一组路由器 1、Area0为骨干区域 2、ABR--关乎3类LSA后续详解 ABR用来连接骨干区域Area0和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。 3、AS…...
网络编程(13)——单例模式
十三、day13 今天学习如何单例模式实现逻辑层的设计。内容包括服务器如何能捕获信号使其安全退出、单例模标类 1. 什么是单例模式? 单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点&…...
基于定制开发与2+1链动模式的商城小程序搭建策略
摘要:本文探讨商城小程序的搭建策略,对比自主组建团队和第三方开发两种方式,强调以第三方开发模式为主的优势。阐述在第三方开发模式下,结合定制开发和21链动模式,如何搭建一款有助于企业商业模式创新与智能商业升级的…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
基于单片机的宠物屋智能系统设计与实现(论文+源码)
本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢,连接红外测温传感器,可实时精准捕捉宠物体温变化,以便及时发现健康异常;水位检测传感器时刻监测饮用水余量,防止宠物…...
CSS3相关知识点
CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...
小智AI+MCP
什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github:https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...
