news 2026/8/25 14:25:03

Linux学习21-hadoop续及hadoop高可用部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux学习21-hadoop续及hadoop高可用部署

yarn部署

新增节点node4

下载nfs

执行yum install nfs-utils命令下载安装NFS相关工具包。

node1做免密,与本机也做免密

在node1上生成SSH密钥对,并将公钥分发到各节点,实现免密登录。

将node1的公钥添加到本机authorized_keys中,实现本机免密登录。

创建目录并挂载

在node1上创建共享目录,并配置NFS导出规则

执行exportfs -r命令使NFS导出配置生效

在其他节点上执行挂载命令,将NFS共享目录挂载到本地

切目录,启动

切换到NFS挂载目录,准备启动相关服务

执行启动命令,启动NFS相关服务进程

查看,成功

查看NFS服务状态,确认挂载成功

hdfs高可用部署

下载zookeeper

下载并解压ZooKeeper安装包。

配置文件中加入datanode的ip

在ZooKeeper配置文件中添加各datanode节点的IP地址。

所有datanode写入id

在每个datanode节点的myid文件中写入对应的节点ID。

三个node分别为1,2,3

三个节点的myid文件内容分别为1、2、3,用于标识ZooKeeper集群中的节点编号。

设置java路径

在ZooKeeper配置文件中设置JAVA_HOME环境变量路径。

确认Java环境变量配置正确,确保ZooKeeper可以正常启动。

启动zookeeper

在第一个节点上执行启动ZooKeeper的命令。

在第二个节点上启动ZooKeeper服务。

在第三个节点上启动ZooKeeper服务。

查看ZooKeeper进程状态,确认服务已启动。

查看ZooKeeper集群各节点的运行状态,确认集群正常。

修改hdfs-site.xml,注意master和node的ip以实际为准

<configuration>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.nameservices</name>

<value>masters</value>

</property>

<property>

<name>dfs.ha.namenodes.masters</name>

<value>h1,h2</value>

</property>

<property>

<name>dfs.namenode.rpc-address.masters.h1</name>

<value>192.168.36.166:9000</value>

</property>

<property>

<name>dfs.namenode.http-address.masters.h1</name>

<value>192.168.36.166:9870</value>

</property>

<property>

<name>dfs.namenode.rpc-address.masters.h2</name>

<value>192.168.36.170:9000</value>

</property>

<property>

<name>dfs.namenode.http-address.masters.h2</name>

<value>192.168.36.170:9870</value>

</property>

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://192.168.36.167:8485;192.168.36.168:8485;192.168.36.169:8485/masters</value>

</property>

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/tmp/journaldata</value>

</property>

<property>

<name>dfs.ha.automatic-failover.enabled</name>

<value>true</value>

</property>

<property>

<name>dfs.client.failover.proxy.provider.masters</name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

<property>

<name>dfs.ha.fencing.methods</name>

<value>

sshfence

shell(/bin/true)

</value>

</property>

<property>

<name>dfs.ha.fencing.ssh.private-key-files</name>

<value>/home/hadoop/.ssh/id_rsa</value>

</property>

<property>

<name>dfs.ha.fencing.ssh.connect-timeout</name>

<value>30000</value>

</property>

</configuration>

修改hdfs-site.xml配置文件后,确认配置内容正确。

node2,3,4确认zookeeper集群启动

在node2、node3、node4上确认ZooKeeper集群已正常启动。

三个DN上依次启动

在三个datanode节点上依次执行启动命令。

查看

查看datanode进程状态,确认启动成功。

server1上执行,确保journalnode运行正常

在server1上执行命令,确保journalnode运行正常。

Namenode数据默认存放在/tmp,需要把数据拷贝到h2(node5)

将namenode数据从/tmp目录拷贝到h2(node5)节点。

格式化zookeeper,只在h1上执行(node1)

在h1(node1)上执行格式化ZooKeeper的命令。

启动并查看各节点状态,node1,5作为高可用,node2,3,4作为数据节点

启动HDFS服务并查看各节点状态,node1和node5作为高可用节点,node2、node3、node4作为数据节点。

查看namenode进程状态,确认高可用节点正常运行。

查看datanode进程状态,确认数据节点正常运行。

浏览器访问,此时node1为active,node5为standby

浏览器访问HDFS Web界面,此时node1为active状态,node5为standby状态。

查看HDFS集群的datanode列表,确认所有数据节点已正常注册。

故障切换测试,停止node1上namenode

执行命令停止node1上的namenode进程,进行故障切换测试。

此时node5变为active,node1拒绝访问

故障切换后,node5自动变为active状态,node1拒绝访问。

再次手动启动node1的namenode,此时node1变为standby

手动重新启动node1的namenode后,node1自动变为standby状态,高可用机制正常工作。

yarn高可用配置

node1,5配置

修改yarn-site.xml

<configuration>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.env-whitelist</name>

<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>

</property>

<property>

<name>yarn.resourcemanager.ha.enabled</name>

<value>true</value>

</property>

<property>

<name>yarn.resourcemanager.cluster-id</name>

<value>RM_CLUSTER</value>

</property>

<property>

<name>yarn.resourcemanager.ha.rm-ids</name>

<value>rm1,rm2</value>

</property>

<property>

<name>yarn.resourcemanager.hostname.rm1</name>

<value>server1</value>

</property>

<property>

<name>yarn.resourcemanager.hostname.rm2</name>

<value>server5</value>

</property>

<property>

<name>yarn.resourcemanager.recovery.enabled</name>

<value>true</value>

</property>

<property>

<name>yarn.resourcemanager.store.class</name>

<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>

</property>

<property>

<name>yarn.resourcemanager.zk-address</name>

<value>192.168.36.167:2181,192.168.36.168:2181,192.168.36.169:2181</value>

</property>

</configuration>

修改yarn-site.xml配置文件,配置YARN高可用相关参数。

修改mapred-site.xml

修改mapred-site.xml配置文件,设置MapReduce相关参数。

启动YARN服务并查看进程状态,确认服务正常启动

浏览器访问8088端口查看YARN Web界面,此时node1为active状态。

node5为standby

查看YARN Web界面,确认node5为standby状态,YARN高可用配置成功。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/25 14:23:08

《易学・临䷒|道影子新解 019》

摘要临卦&#xff08;䷒&#xff09;承接蛊卦“治蛊见效、局面向好”的基础&#xff0c;揭示当以上临下、督导引导时&#xff0c;系统便进入“亲临施治、正向生长”的临御力场。其本质是以上率下、以德临人&#xff0c;以刚健之力引导柔顺生长&#xff0c;核心是“教思无穷、容…

作者头像 李华
网站建设 2026/8/25 14:22:09

给 RustFS 加第二个池:volumes 省略号语法与多池扩容路线

一句话定位&#xff1a;RustFS 是面向 AI 时代、从零原生打造的高性能分布式对象存储&#xff0c;100% 兼容 S3 API&#xff0c;Apache 2.0 协议&#xff0c;底层用 Rust 构建&#xff0c;可作为 MinIO 的 drop-in 替代方案。目录 1. 问题背景&#xff1a;容量不够了&#xff…

作者头像 李华
网站建设 2026/8/25 14:21:54

ROS 2 生命周期节点的几种调用方式:从自动启动到统一管理

ROS 2 生命周期节点的几种调用方式&#xff1a;从自动启动到统一管理本文以 ROS 2 Humble 与 C rclcpp_lifecycle::LifecycleNode 为例&#xff0c;说明生命周期节点的状态模型&#xff0c;以及节点内部直调、命令行、ROS 服务、生命周期管理器和同进程集中式调度五种方式。重点…

作者头像 李华
网站建设 2026/8/25 14:19:52

JavaScript入门4

文章目录十二、JavaScript控制语句1.条件语句2.循环语句2.1 for...in 循环2.2 for...of 循环2.2.1 基本语法2.2.2 遍历数组、Set、字符串2.2.3 变量名做属性名时需要 [ ]2.2.4 关于 Symbol 值做对象的键2.2.5 关于 Symbol.iterator2.2.6 实现可迭代对象2.2.7 生成器函数2.2.8 使…

作者头像 李华
网站建设 2026/8/25 14:19:39

电动车租车系统商家端怎么配置?2026 年 40+ 运营参数模块设计详

商家系统配置模块要解决什么问题&#xff1f; 分时租车业务为什么需要参数化配置 分时租车平台的日常运营涉及车辆调度、电量管理、服务区管控、押金退款、报警通知等多个业务域&#xff0c;每个域都存在大量可调参数。如果这些参数硬编码在代码中&#xff0c;每次调整都需要发…

作者头像 李华