(十二)大数据实战——hadoop集群之HDFS高可用自动故障转移

前言

本节内容主要介绍一下hadoop集群下实现HDFS高可用的自动故障转移,HDFS高可用的自动故障转移主要通过zookeeper实现故障的监控和主节点的切换。自动故障转移为 HDFS 部署增加了两个新组件:ZooKeeper 和 ZKFailoverController (ZKFC)进程。ZooKeeper 是维护少量协调数据,通知客户端这些数据的改变和监视客户端故障的高可用服务。在开始本节内容之前,我们需要提前安装好zookeeper集群,可参考作者往期博客内容。

正文

  • 集群规划
hadoop集群高可用hdfs
hadoop101hadoop102hadoop103
NameNodeNameNodeNameNode
JournalNodeJournalNodeJournalNode
DataNodeDataNodeDataNode
ZookeeperZookeeperZookeeper
ZKFCZKFCZKF
  •  在core-site.xml文件中增加zkfc要连接的zkServer地址

- core-site.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. -->
<configuration><!-- 把多个 NameNode 的地址组装成一个集群 mycluster --><property><name>fs.defaultFS</name><value>hdfs://mycluster</value></property><!-- 指定hadoop数据的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.1.3/data</value></property><!-- 配置HDFS网页登录使用的静态用户为hadoop --><property><name>hadoop.http.staticuser.user</name><value>hadoop</value></property><!-- 指定 zkfc 要连接的 zkServer 地址 --><property><name>ha.zookeeper.quorum</name><value>hadoop101:2181,hadoop102:2181,hadoop103:2181</value></property>
</configuration>

  • 在hdfs-site.xml中增加故障转移的配置

- hdfs-site.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. -->
<configuration><!-- NameNode 数据存储目录 --><property><name>dfs.namenode.name.dir</name><value>file://${hadoop.tmp.dir}/nn</value></property><!-- DataNode 数据存储目录 --><property><name>dfs.datanode.data.dir</name><value>file://${hadoop.tmp.dir}/dn</value></property><!-- JournalNode 数据存储目录 --><property><name>dfs.journalnode.edits.dir</name><value>${hadoop.tmp.dir}/jn</value></property><!-- 完全分布式集群名称 --><property><name>dfs.nameservices</name><value>mycluster</value></property><!-- 集群中 NameNode 节点都有哪些 --><property><name>dfs.ha.namenodes.mycluster</name><value>nn1,nn2,nn3</value></property><!-- NameNode 的 RPC 通信地址 --><property><name>dfs.namenode.rpc-address.mycluster.nn1</name><value>hadoop101:8020</value></property><property><name>dfs.namenode.rpc-address.mycluster.nn2</name><value>hadoop102:8020</value></property><property><name>dfs.namenode.rpc-address.mycluster.nn3</name><value>hadoop103:8020</value></property><!-- NameNode 的 http 通信地址 --><property><name>dfs.namenode.http-address.mycluster.nn1</name><value>hadoop101:9870</value></property><property><name>dfs.namenode.http-address.mycluster.nn2</name><value>hadoop102:9870</value></property><property><name>dfs.namenode.http-address.mycluster.nn3</name><value>hadoop103:9870</value></property><!-- 指定 NameNode 元数据在 JournalNode 上的存放位置 --><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://hadoop101:8485;hadoop102:8485;hadoop103:8485/mycluster</value></property><!-- 访问代理类:client 用于确定哪个 NameNode 为 Active --><property><name>dfs.client.failover.proxy.provider.mycluster</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><!-- 配置隔离机制,即同一时刻只能有一台服务器对外响应 --><property><name>dfs.ha.fencing.methods</name><value>sshfence</value></property><!-- 使用隔离机制时需要 ssh 秘钥登录--><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/home/hadoop/.ssh/id_rsa</value></property><!-- 启用 nn 故障自动转移 --><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property>
</configuration>

  • 使用hsync分发修改的配置文件

  •  启动zookeeper集群

  • 启动 Zookeeper集群后,然后再初始化HA在Zookeeper集群中状态

 命令:hdfs zkfc -formatZK

  • 启动HDFS服务

- 命令:start-dfs.sh 

  • 关闭hadoop102的active的节点,查看故障是否会转移

 - 当前激活的节点是hadoop102

- 关闭hadoop102的namenode节点

- 发现故障并未转移,每个服务需要独立安装psmisc,实现服务通信,命令:yum install psmisc -y

 - 当前激活节点变为hadoop103,hadoop101为备用节点,hadoop102无法访问,实现了故障转移

结语

关于hadoop集群之HDFS高可用自动故障转移的内容到这里就结束了,我们下期见。。。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/55483.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】Pandas 简介,数据结构 Series、DataFrame 介绍,CSV 文件处理,JSON 文件处理

序号内容1【Python】Pandas 简介&#xff0c;数据结构 Series、DataFrame 介绍&#xff0c;CSV 文件处理&#xff0c;JSON 文件处理2【Python】Pandas 数据清洗操作&#xff0c;常用函数总结 文章目录 1. Pandas 简介2. Pandas 数据结构1. Series&#xff08;一维数据&#xff…

【LeetCode】24.两两交换链表中的节点

题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#xff1a…

css-3:什么是响应式设计?响应式的原理是什么?如何做?

1、响应式设计是什么&#xff1f; 响应式网站设计&#xff08;Responsive WEB desgin&#xff09;是一个网络页面设计布局&#xff0c;页面的设计与开发应当根据用户行为以及设备环境&#xff08;系统平台、屏幕尺寸、屏幕定向等&#xff09;进行相应的相应和调整。 描述响应式…

【数字化处理】仿生假体控制中肌电信号的数字化处理研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

309. 买卖股票的最佳时机含冷冻期

目录 一、题目 二、代码 一、题目 309. 买卖股票的最佳时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; 二、代码 class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();//0表示持有股票的状态&#xff0c;1表示不持有股票在…

MySQL中的视图

系列文章目录 MySQL常见的几种约束 MySQL中的函数 MySQL中的事务 文章目录 系列文章目录前言一、视图的概念二、视图的好处三、SQL展示总结 前言 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多人都开启了学习机器学习&…

机器学习04-数据理解之数据可视化-(基于Pima数据集)

什么是数据可视化? 数据可视化是指通过图表、图形、地图等视觉元素将数据呈现出来的过程。它是将抽象的、复杂的数据转化为直观、易于理解的视觉表达的一种方法。数据可视化的目的是帮助人们更好地理解数据&#xff0c;从中发现模式、趋势、关联和异常&#xff0c;从而作出更明…

华为推出手机系统云翻新服务:什么是云翻新?如何使用?

华为手机系统云翻新是华为推出的一项功能&#xff0c;旨在通过云服务提供系统翻新的服务。它可以帮助用户对手机的系统进行优化和更新&#xff0c;以提高手机的性能和流畅度。具体而言&#xff0c;华为手机系统云翻新功能提供了免费的云空间&#xff0c;用户可以将手机中的系统…

React 核心开发者 Dan Abramov 宣布从 Meta 离职

导读React.js 核心开发者、Redux 作者 Dan Abramov 在社交平台发文宣布&#xff0c;将辞去在 Meta 的职务&#xff1a; “我感到苦乐参半&#xff0c;几周后我就要辞去 Meta 的工作了。在 Meta 的 React 组织工作是我的荣幸。感谢我过去和现在的同事接纳我&#xff0c;容忍我犯…

【云原生】Docker-Compose全方面学习

目录 1.compose简介 Compose V2 2.compose安装与下载 二进制包 PIP 安装 bash 补全命令 卸载 3.docker compose管理命令 命令对象与格式 命令选项 命令使用说明 1.compose简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose&#xff0c;您可…

观察HoudiniEngine是怎么得到Cook时信息的

目标 官方HoudiniEngine在对HDA进行Cook的时候会有提示框显示Cook信息&#xff1a; &#xff08;此测试用HDA见附录&#xff09; 本篇目标是了解这个信息&#xff08;正在Cook哪个节点&#xff09;是如何得到的。 思路是先断点断到得到信息的位置&#xff0c;然后顺藤摸瓜看…

网络安全设备及部署

什么是等保定级&#xff1f; 之前了解了下等保定级&#xff0c;接下里做更加深入的探讨 文章目录 一、网路安全大事件1.1 震网病毒1.2 海康威视弱口令1.3 物联网Mirai病毒1.4 专网 黑天安 事件1.5 乌克兰停电1.6 委内瑞拉电网1.7 棱镜门事件1.8 熊猫烧香 二、法律法规解读三、安…