Hadoop HA高可用搭建2024(V3.3.6)

启动停止命令

启动服务

cd /data/soft/hadoop/sbin
hadoop-daemon.sh start journalnode
./start-all.sh

mapred --daemon start historyserver
yarn --daemon start timelineserver

停止服务

cd /data/soft/hadoop/sbin
hadoop-daemon.sh stop journalnode
./stop-all.sh

mapred --daemon stop historyserver
yarn --daemon stop timelineserver

HA 概述

HA 即高可用,在 Hadoop 中,只有 NN 和 MR 会出现单点故障。所以只需要对 NN 和 MR 做 HA
HA 原理就是额外起一台机子作冗余备份,当主机挂了,就让备机顶上。按照该想法会存在以下问题:

  1. 主备间如何同步 Edit?
  2. 如何检测主机下线?
  3. 如何做故障转移?

对于问题一:Hadoop 引入 JournalNode 解决
对于问题二:使用 ZK 来检测机器状态变化
对于问题三:Hadoop 引入 DFSZKFailoverController 解决
引入新的部件,为了防止这些也是是单点的,所以也得给他们起多个

集群规划

按照以上分析,便有以下集群规划

node01 node02 node03
NameNode NameNode NameNode
DFSZKFailoverController DFSZKFailoverController DFSZKFailoverController
JournalNode JournalNode JournalNode
DataNode DataNode DataNode
ZK ZK ZK
ResourceManager ResourceManager ResourceManager
NodeManager NodeManager NodeManager

ZK 集群搭建

参考
ZooKeeper集群安装

Hadoop安装

Hadoop下载地址:
:::info

tar -zxvf /data/soft/hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 hadoop
chown -R root:root ./hadoop

打开"/etc/profile"配置文件,配置hadoop环境变量(注意,标点符号全都要是英文半角):

export HADOOP_HOME=/data/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
#export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"

执行"/etc/profile",让配置生效:

source /etc/profile

测试hadoop安装:

hadoop version

修改配置

hadoop-env.sh

修改hadoop-env.sh文件,设置运行环境变量及运行用户

export JAVA_HOME=/data/soft/sdkman/candidates/java/current
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root

core-site.xml

注意:
HA集群名称要和hdfs-site.xml中的配置保持一致
修改存储路径
Zookeeper集群的地址和端口

<configuration>
  <!-- HA集群名称,自定义,该值要和hdfs-site.xml中的配置保持一致  -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://mycluster</value>
  </property>
  <!-- 指定hadoop运行时产生文件的存储路径 -->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/data/apps/hadoop</value>
  </property>
  <!-- 设置HDFS web UI访问用户 -->
  <property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
  </property>
  <!-- ZooKeeper集群的地址和端口-->
  <property>
    <name>ha.zookeeper.quorum</name>
    <value>master:2181,slave1:2181,slave2:2181</value>
  </property>

  <!-- 配置该root允许通过代理访问的主机节点 -->
  <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
  </property>
  <!-- 配置该root允许代理的用户所属组 -->
  <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
  </property>
  <!-- 配置该root允许代理的用户 -->
  <property>
    <name>hadoop.proxyuser.root.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值