[hadoop高可用架构]

系统环境:Centos7 selinux and iptables is disabled
Hadoop 、jdk、zookeeper程序使用nfs共享同步配置文件

软件版本:hadoop-3.3.6.tar.gz

apache-zookeeper-3.8.6-bin.tar.gz

jdk-8u181-linux-x64.tar.gz

主机列表

|-----------------|-------|--------------------------------------------------|
| IP | 主机名 | 角色 |
| 192.168.247.132 | node1 | NameNode DFSZKFailoverController ResourceManager |
| 192.168.36.133 | node2 | JournalNode QuorumPeerMain DataNode NodeManager |
| 192.168.36.134 | node3 | JournalNode QuorumPeerMain DataNode NodeManager |
| 192.168.36.135 | node4 | JournalNode QuorumPeerMain DataNode NodeManager |
| 192.168.36.136 | node5 | NameNode DFSZKFailoverController ResourceManager |

node2~node5:
yum install -y nfs-utils
mount 192.168.247.132:/home/hadoop/ /home/hadoop/

zookeeper集群部署

安装zookeeper

修改目录所有权

root@node1 \~# chown -R hadoop:hadoop /home/hadoop/apache-zookeeper-3.8.6-bin

清理之前的数据

hadoop@node1 \~$ rm -fr /tmp/*

hadoop@node2 \~$ rm -fr /tmp/*

hadoop@node3 \~$ rm -fr /tmp/*

修改配置文件

hadoop@node2 \~$ cd /home/hadoop/apache-zookeeper-3.8.6-bin/conf

hadoop@node2 conf$ cp zoo_sample.cfg zoo.cfg

在/tmp/zookeeper目录中创建myid文件,写入一个唯一的数字

hadoop@node2 \~$ mkdir /tmp/zookeeper

hadoop@node2 \~$ echo 1 > /tmp/zookeeper/myid

hadoop@node3 \~$ echo 2 > /tmp/zookeeper/myid

hadoop@node4 \~$ echo 3 > /tmp/zookeeper/myid

在各节点启动服务

bin/zkServer.sh start

查看节点状态

bin/zkServer.sh status

Hadoop配置

编辑 core-site.xml

hadoop@node1 hadoop$ vim /home/hadoop/hadoop/etc/hadoop/core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://masters</value>
</property>

<property>
<name>ha.zookeeper.quorum</name>
<value>192.168.247.133:2181,192.168.247.134:2181,192.168.247.135:2181</value>
</property>
</configuration>

编辑 hdfs-site.xml

启动hdfs集群(按顺序启动)

确认启动zookeeper集群(node2、node3、node4)

在三个DN上依次启动journalnode(第一次启动hdfs必须先启动journalnode)

hadoop@node4 \~ cd hadoop \[hadoop@node4 hadoop\] bin/hdfs --daemon start journalnode

格式化HDFS集群(node1上执行)

hadoop@node1 hadoop$ bin/hdfs namenode -format
Namenode数据默认存放在/tmp,需要把数据拷贝到h2

hadoop@node1 hadoop$ scp -r /tmp/hadoop-hadoop node5:/tmp
格式化zookeeper (只需在h1上执行即可)

hadoop@node1 hadoop$ bin/hdfs zkfc -formatZK

启动hdfs集群(只需在h1上执行即可)

hadoop@node1 hadoop$ sbin/start-dfs.sh

查看各节点状态

测试故障自动切换


杀掉h1主机的namenode进程后依然可以访问,此时h2转为active状态接管namenode

hadoop@node1 hadoop$ bin/hdfs --daemon start namenode
启动h1上的namenode,此时为standby状态

hadoop@node5 hadoop$ bin/hdfs dfs -mkdir /user

hadoop@node5 hadoop$ bin/hdfs dfs -mkdir /user/hadoop

hadoop@node5 hadoop$ bin/hdfs dfs -put input

yarn高可用 配置

编辑 mapred-site.xml

hadoop@node1 \~$ cd /home/hadoop/hadoop/etc/hadoop

hadoop@node1 hadoop$ vim mapred-site.xml
<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>mapreduce.application.classpath</name>

<value>HADOOP_MAPRED_HOME/share/hadoop/mapreduce/\*:HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>

</property>

</configuration>

编辑 yarn-site.xml

启动yarn服务

hadoop@node1 hadoop$ sbin/start-yarn.sh

测试yarn故障切换

稍后手动恢复rm

相关推荐
Data-Miner3 小时前
面对 AI 大模型智能涌现,如何从技术层面保护好隐私与数据安全?
大数据·人工智能
小刘在重生~3 小时前
Servlet_day2 (上)|Servlet 整合 JDBC|请求转发 forward|Request 作用域
hive·hadoop·servlet
会议咨询4 小时前
2027年电力电子、人工智能与大数据国际会议(PEABD 2027)
大数据·人工智能·电力电子
GlobalInfo5 小时前
全球包装检测用3D轮廓传感器市场调研:2026年规模预计达1.87亿美元,食品医药与电商物流需求推动增长
大数据·人工智能·3d
程序 代码狂人5 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
天河归来6 小时前
从原始消息到业务数据:三层数据架构的设计与实践
数据库·数据仓库·架构
starzy19907 小时前
Kafka响应发送:字节是怎么真正写回客户端的
大数据·kafka
数字新视界7 小时前
国产动环数据库在智能机房环境监控中的应用与优势分析
大数据·人工智能·数据中心·机房管理·模块化机房
天远Date Lab7 小时前
零信任架构实战:基于天远企业年报信息核验构建自动化商业保理财务与社保穿透评估网关
人工智能·架构·自动化
EnCi Zheng7 小时前
后端怎么把AI接口稳定安全低成本接进业务:超时重试、密钥隔离与成本熔断清单
人工智能·后端·安全·架构·api