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

【Hadoop】--HA高可用搭建--3.2.2

修改环境配置文件 hadoop-env.sh

# 在文件末尾添加以下内容:
# java_home记得修改
export JAVA_HOME=/usr/java/jdk1.8.0xxxx
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_ZKFC_USER=root
export HDFS_JOURNALNODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

修改核心配置文件 core-site.xml

# 在configuration 节点中添加以下内容<!-- 设置 NameNode 节点的 URI (包括协议、主机名称、端口号),用于 NameNode 与 DataNode 之间的通讯 --><property><name>fs.defaultFS</name><value>hdfs://hdfs-yjx</value></property><!-- 设置 Hadoop 运行时临时文件的存放位置,比如 HDFS 的 NameNode 数据默认存放在该目录 --><property><name>hadoop.tmp.dir</name><value>/var/yjx/hadoop/ha</value></property><!-- 设置 Web 界面访问数据时使用的用户名 --><property><name>hadoop.http.staticuser.user</name><value>root</value></property><!-- 配置 HA (高可用),需要一组 Zookeeper 地址,以逗号分隔 --><!-- 该参数被 ZKFailoverController 用于自动故障转移(Failover) --><property><name>ha.zookeeper.quorum</name><value>node01:2181,node02:2181,node03:2181</value></property><!-- 该参数表示可以通过 httpfs 接口访问 HDFS 的 IP 地址限制 --><!-- 配置 root(超级用户)允许通过 httpfs 方式访问 HDFS 的主机名或域名 --><property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><!-- 通过 httpfs 接口访问的用户获得的群组身份 --><!-- 配置允许通过 httpfs 方式访问的客户端的用户组 --><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property>

修改 HDFS 配置文件 hdfs-site.xml

[root@node01 hadoop]# vim hdfs-site.xml# 在configuration 节点中添加以下内容:<!-- 设置 NameService(HDFS 命名服务),支持多个 NameNode 的 HA 配置 --><property><name>dfs.nameservices</name><value>hdfs-yjx</value></property><!-- 设置 NameNode ID 列表,hdfs-yjx 对应 dfs.nameservices --><property><name>dfs.ha.namenodes.hdfs-yjx</name><value>nn1,nn2</value></property><!-- 设置 NameNode 的 RPC 地址和端口 --><property><name>dfs.namenode.rpc-address.hdfs-yjx.nn1</name><value>node01:8020</value></property><property><name>dfs.namenode.rpc-address.hdfs-yjx.nn2</name><value>node02:8020</value></property><!-- 设置 NameNode 的 Web 界面访问地址和端口 --><property><name>dfs.namenode.http-address.hdfs-yjx.nn1</name><value>node01:9870</value></property><property><name>dfs.namenode.http-address.hdfs-yjx.nn2</name><value>node02:9870</value></property><!-- 设置 JournalNode 共享存储,用于存放 HDFS EditLog --><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://node01:8485;node02:8485;node03:8485/hdfs-yjx</value></property><!-- 设置 JournalNode 日志存储路径 --><property><name>dfs.journalnode.edits.dir</name><value>/var/yjx/hadoop/ha/qjm</value></property><!-- 设置客户端连接 Active NameNode 的代理类 --><property><name>dfs.client.failover.proxy.provider.hdfs-yjx</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><!-- HDFS-HA 发生脑裂时的自动处理方法 --><property><name>dfs.ha.fencing.methods</name><value>sshfence</value><value>shell(true)</value></property><!-- 失效转移时使用的 SSH 私钥文件 --><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value></property><!-- 是否启用 HDFS 自动故障转移 --><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property><!-- 设置 HDFS 默认的数据块副本数(可在文件创建时覆盖) --><property><name>dfs.replication</name><value>2</value></property>

修改 workers:[root@node01 hadoop]# vim workers

node01
node02
node03

启动

# 首先启动 ZooKeeper(三台机器都需要执行)。[root@node01 hadoop]# zkServer.sh start
[root@node01 hadoop]# zkServer.sh status# 然后启动 JournalNode(三台机器都需要执行)。
[root@node01 hadoop]# hdfs --daemon start journalnode# 最后格式化 NameNode 等相关服务并启动集群
# 格式化 node01 的 namenode(第一次配置的情况下使用)
[root@node01 ~]# hdfs namenode -format# 启动 node01 的 namenode
[root@node01 ~]# hdfs --daemon start namenode# node02 节点同步镜像数据
[root@node02 ~]# hdfs namenode -bootstrapStandby# 格式化 zkfc(第一次配置的情况下使用)
[root@node01 ~]# hdfs zkfc -formatZK# 启动 HDFS
[root@node01 ~]# start-dfs.sh

关闭 hadoop

# 先关闭 HDFS。
[root@node01 ~]# stop-dfs.sh# 再关闭 ZooKeeper(三台机器都需要执行)。
[root@node01 ~]# zkServer.sh stop# 启动|关闭 所有节点和进程
[root@node01 ~]# start-all.sh
[root@node01 ~]# stop-all.sh[root@node01 ~]# mapred --daemon start historyserver
http://www.xdnf.cn/news/522739.html

相关文章:

  • 【520快乐】写一个网页送上520祝福
  • 智慧电力赋能金融机构,用数据守住“电力生命线
  • uniapp小程序获取手机设备安全距离
  • 中小实验室质检LIMS 系统选型 从成本管控到竞争力升级的黄金法则
  • 【MySQL】基础操作
  • 用户行为日志分析的常用架构
  • TCP和套接字SSL加密连接行为分析
  • 二分交互题总结
  • 深入探讨死区生成:原理、实现与应用
  • 词嵌入基础
  • 【Rust迭代器】Rust迭代器用法解析与应用实战
  • Python Django 的 ORM 编程思想及使用步骤
  • R语言数据可视化
  • Elasticsearch 深入分析三种分页查询【Elasticsearch 深度分页】
  • 力扣面试150题--从前序与中序遍历序列构造二叉树
  • Windows 下 Nginx 安装与配置指南 [特殊字符]
  • Axure难点解决分享:垂直菜单展开与收回(4大核心问题与专家级解决方案)
  • LeetCode 35 搜索插入位置题解
  • Axure设计数字乡村可视化大屏:构建乡村数据全景图
  • 【滑动窗口】LeetCode 1004题解 | 最大连续1的个数 Ⅲ
  • 小程序弹出层/抽屉封装 (抖音小程序)
  • CSS- 4.6 radiu、shadow、animation动画
  • CVE-2015-4553 Dedecms远程写文件
  • prisma连接非关系型数据库mongodb并简单使用
  • 【QT】类A和类B共用类C
  • 分布式数据库TiDB:深度解析原理、优化与架构设计
  • 永磁同步电机高性能控制算法(22)——基于神经网络的转矩脉动抑制算法为什么低速时的转速波动大?
  • 批量剪辑 + 矩阵分发 + 数字人分身源码搭建全技术解析,支持OEM
  • 【NLP】37. NLP中的众包
  • VR 互动实训与展示,借科技开启沉浸式体验新篇​