0


hadoop ha安装

“ Hadoop在大数据的应用可以说是非常广泛,国产大数据平台中很多也是引用了Hadoop大数据的技术框架。了解hadoop对于学习大数据技术是一个非常基础的要求和前提条件。"

e4239885d20f4bf6bf86fb9f839e263f_3.png

Hadoop简介

Hadoop是一个开源的分布式存储和计算框架,最初由Apache软件基金会开发。它的发展背景可以追溯到Google的MapReduce和Google File System(GFS)的论文,这两篇论文启发了Hadoop的设计。Hadoop的主要应用场景包括大数据存储、处理和分析,特别是在需要处理海量数据的互联网和企业环境中。它被广泛用于日志分析、数据挖掘、机器学习、图像处理等领域。Hadoop的生态系统还包括许多相关项目,如Hive、HBase、Spark等,为大数据处理提供了丰富的工具和技术。
虽然当前提出hadoop的缺点以及弊端,但是当前hadoop的全功能性还是能解决大型项目的大多数问题。学习hadoop变较为必要。

分布式存储(HDFS):

Hadoop Distributed File System(HDFS)是Hadoop的分布式存储系统,它将大数据集分割成小块并在多个节点上进行分布式存储,提供高可靠性和容错性。

分布式计算(MapReduce):

Hadoop使用MapReduce编程模型,将任务分解成Map和Reduce两个阶段,实现对大规模数据的并行处理,从而加速数据分析和处理过程。

YARN(资源管理):

Yet Another Resource Negotiator(YARN)是Hadoop的资源管理系统,负责集群中资源的调度和管理,支持多个应用程序共享集群资源,提高资源利用率。

数据存储:

大文件被切分为小块,并在集群中的多个节点上进行分布式存储,每个数据块默认被复制到多个节点以提高容错性。

MapReduce计算:

用户定义Map和Reduce任务,Map任务对输入数据进行处理生成键值对,Reduce任务对Map输出进行聚合和汇总。

分布式计算:

MapReduce框架将任务分发到集群中的多个节点,节点间通过网络传输数据和中间结果,实现并行处理。
Hadoop被设计用于处理PB级别的数据,为企业提供了高度可扩展的解决方案。Hadoop生态系统包括Hive、Pig、HBase等工具,为不同的数据处理需求提供了全面的解决方案。很多企业在构建大数据基础设施时选择Hadoop,用于存储、处理和分析海量数据,支持智能决策制定。Hadoop能够无缝集成到主流云计算平台,提供灵活的大数据处理解决方案,使其在云端环境中得到广泛应用。大多数云服务厂商底层框架还是hadoop的框架。

系统基础配置

在安装集群之前,对于各个节点之间的ssh免密登录、IP映射、时钟同步等相关的基础配置调整。

ip/hostname映射(所有节点)

为方便集群节点之间通过hostname相互通信,在hosts文件中分别为每个节点配置hostname与IP之间的映射关系,具体操作如下所示。

vim /etc/hosts

加入以下信息

10.0.0.105 vm05
10.0.0.106 vm06
10.0.0.107 vm07

时钟同步

集群对节点的时间同步要求比较高,要求各个节点的系统 时间不能相差太多,否则会造成很多问题,比如最常见的连接超时问题。所以需要集群节点的系统时间与互联网时间保持同步,但是在实际生产环境中,集群中大部分节点是不能连接外网的,这时可以在内网搭建一个自己的时钟服务器(如NTP服务器),然后让ZK集群的 各个节点与此时钟服务器的时间保持同步。

查看所有节点时间

date

image.png

检查NTP服务是否已经安装。

rpm -qa|grep ntp

关闭防火墙、seliunx(所有节点同步)

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

image.png

安装ntp工具(所有节点同步)

yum install -y ntp

在内网情况下自行导入rpm包

选择vm06节点来配置NTP服务器,集群其他节点定时同步vm06节点时间即可。
更改时间服务器配置(所有节点同步)

vim /etc/ntp.conf

注释一下内容

#restrict default nomodify notrap nopeer noquery
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

对于以上得解释

#restrict default nomodify notrap nopeer noquery:

restrict 是用来限制对 NTP 服务器的访问权限的指令。
default 表示这个限制是针对默认的访问权限。
nomodify 表示不允许修改服务器上的时间设置。
notrap 表示不允许使用 trap 服务,这是一种用于远程管理和监视的 NTP 服务。
nopeer 表示不允许与其他 NTP 对等服务器进行对等通信。
noquery 表示不允许查询服务器的状态信息。
#server 0.centos.pool.ntp.org iburst:

server 是用来指定 NTP 服务器的指令。
0.centos.pool.ntp.org 是一个 NTP 服务器的主机名或者 IP 地址,这里以 0.centos.pool.ntp.org 为例。
iburst 表示使用快速启动(initial burst)方式与服务器同步时间。
#server 1.centos.pool.ntp.org iburst、#server 2.centos.pool.ntp.org iburst、#server 3.centos.pool.ntp.org iburst:

类似于第二条注释,这里列出了另外三个 NTP 服务器的主机名或者 IP 地址,用来作为备用的时间服务器。

开启ntpdate服务(所有节点同步)

systemctl start ntpdate 
systemctl enable ntpdate 
systemctl status ntpdate 

将vm05、vm07 时间进行更改一遍后面测试验证

date -s "19990101 01:01:01"
date

image.png

设置定时同步任务(vm05、vm07)

crontab -e 

每分钟同步一次vm06得时间

*/1 * * * *  /usr/sbin/ntpdate -u 10.0.0.106

每分钟执行一次 /usr/sbin/ntpdate -u 10.0.0.106 命令,以同步系统时间与指定的 NTP 服务器。一分钟之后使用date指令进行查看时间同步情况。

jdk安装

1)下载JDK。
登录Oracle官网,进行下载安装包jdk-8u391-linux-x64.tar.gz
上传到其中一个节点再使用SCP分发到其他节点中去

scp  jdk-8u391-linux-x64.tar.gz root@vm05:/root
scp  jdk-8u391-linux-x64.tar.gz root@vm07:/root

2)解压JDK。
使用tar命令对jdk-8u51-linux-x64.tar.gz安装包进行解压,详细操作如下所示。

tar -zxf jdk-8u391-linux-x64.tar.gz 

迁移到根下

[root@vm06 ~]# mv jdk1.8.0_391/ /jdk 
[root@vm06 ~]# cd /jdk
[root@vm06 jdk]# pwd 
/jdk

配置环境变量

vim /etc/profile
###加入以下内容
export JAVA_HOME=/jdk/
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

退出保存后加载环境变量

source /etc/profile

验证

java -version 

image.png

zookeepeer安装

创建hadoop 用户和用户组

groupadd hadoop
useradd  hadoop -g  hadoop
##为Hadoop设置密码
passwd hadoop

设置sudo 权限

visudo

找到一下行

 ## Allow root to run any commands anywhere
  root    ALL=(ALL)       ALL

在添加以下用户

hadoop  ALL=(ALL) NOPASSWD:ALL

切换到hadoop用下下载zookeeper 安装包,进入
zookeeper官网,选择

注意:安装有名称有带bin 和不带bin的,选择带bin的会自带有依赖的JAR包,不选带BIN没有配置标准的JDK包 会导致ZK启动失败 Error contacting service. It is probably not running. 的报错。本文虽然配置环境变量CLASSPATH

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

避免读者在实操过程中出现问题依然使用带bin的安装进行演示,此时ZK启动会优先从自带lib查找依赖包
使用wget下载zookeeper压缩包

wget https://dlcdn.apache.org/zookeeper/zookeeper-3.9.1/apache-zookeeper-3.9.1-bin.tar.gz --no-check-certificate

解压zookeeper,并设置软连接方便后期版本升级替换

tar -zxf apache-zookeeper-3.9.1-bin.tar.gz
ln -s apache-zookeeper-3.9.1-bin zookeeper

编辑zoo.cfg配置文件
这个配置文件默认选择命名为zoo.cfg,并保存在conf子目录中,配置文件的具体内容如下所示.安装包给出了模板配置文件zoo_sample.cfg

cd zookeeper/conf/
cp zoo_sample.cfg  zoo.cfg
vim zoo.cfg

zoo.cfg中编辑如以下内容


# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
#日志目录
dataLogDir=/home/hadoop/zookeeper/zklog
#数据目录
dataDir=/home/hadoop/zookeeper/zkdata
# the port at which the clients will connect
#访问ZK的默认端口号
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
 
## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpHost=0.0.0.0
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
#server.节点编号=对应节点的hostname:集群通讯端口:选举端口
server.1=vm05:2888:3888
server.2=vm06:2888:3888
server.3=vm07:2888:3888

该文件中除了配置server编号外 还有几个参数,以下做解释。

·tickTime=2000:这是ZooKeeper服务器的时间单位,以毫秒为单位。此值决定了ZooKeeper服务器中的时间,以及各种超时和会话时间。默认值是2000毫秒(2秒)。
·initLimit=10:这是ZooKeeper服务器初始化时等待客户端完成连接的时间限制(以tickTime为单位)。如果在该时间内没有足够数量的客户端连接到服务器,那么服务器将关闭。默认值是10。
·syncLimit=5:这是ZooKeeper服务器同步其数据给其他服务器的时间限制(以tickTime为单位)。如果在该时间内没有完成数据同步,那么同步将被中止。默认值是5。
·dataLogDir=/home/hadoop/zookeeper/zklog:这是ZooKeeper服务器存储其数据日志的目录。数据日志包含服务器状态的持久化信息。
·dataDir=/home/hadoop/zookeeper/zkdata:这是ZooKeeper服务器存储其数据的目录。数据包含诸如配置文件、事务日志和快照等的信息。
·clientPort=2181:这是ZooKeeper服务器监听的客户端连接端口。默认情况下,ZooKeeper在端口2181上监听来自客户端的连接请求。

创建zookeeper数据目录和日志目录

mkdir -p /home/hadoop/zookeeper/zklog
mkdir -p /home/hadoop/zookeeper/zkdata

创建zookeeper服务编号

cd /home/hadoop/zookeeper/zkdata
rm -rf myid 
touch myid 
echo "2">myid 
cat myid 

注意:这里得编号需要和zoo.cfg中配置得

server.1=vm05:2888:3888
server.2=vm06:2888:3888
server.3=vm07:2888:3888

服务编号一一对应
image.png
编辑环境变量

cd /home/hadoop
vim .bash_profile

加入以下环境信息

source /etc/profile
export ZOOKEEPER_HOME=/home/hadoop/zookeeper
export PATH=${ZOOKEEPER_HOME}/bin:$PATH

加载环境变量

source .bash_profile

启动zookeeper

zkServer.sh start
zkServer.sh status

image.png

配置SSH免密登录

首先在控制台,使用su命令切换到hadoop用户,具体操作下图所示。在hadoop用户的根目录下使用mkdir命令创建.ssh目录,使用命令ssh-keygen-t rsa(ssh-keygen是秘钥生成器,-t是一个参数,rsa是一种加密算法)生成秘钥对(即公钥文件id_rsa.pub和私钥文件id_rsa),

su - hadoop
mkdir -p .ssh
ssh-keygen -t rsa
cd .ssh
cp id_rsa.pub authorized_keys
cat authorized_keys

将每个节点的 authorized_keys 密钥内容汇总到一起, 然后分发到每个节点中去
image.png
为.ssh授权

[hadoop@vm06 .ssh]$ cd 
[hadoop@vm06 ~]$ chmod 700 .ssh/
[hadoop@vm06 ~]$ chmod 600 .ssh/*

ssh 登录其他节点测试,首次登录到其他节点需要“yes”确认

ssh vm07

image.png

安装Hadoop

进入hadoop官网下载hadoop-3.3.6.tar.gz程序包

wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz --no-check-certificate

解压压缩包,并设置软连接

tar -zxf hadoop-3.3.6.tar.gz 
ln -s hadoop-3.3.6 hadoop 
hadoop-env.sh配置
vim /home/hadoop/hadoop/etc/hadoop/hadoop-env.sh

添加JAVA_HOME的路径。
image.png

core-site.xml配置

加入以下信息

<!-- core-site.xml -->
<configuration>
    <!-- 指定Hadoop文件系统的默认块大小 -->
    <property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
    </property>
    <!-- 指定Hadoop文件系统的默认副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>    
    <!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/data</value>
    </property>
    <!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://mycluster</value>
    </property>
     <!-- 配置zookeeper管理hdfs -->
     <property>
        <name>ha.zookeeper.quorum</name>
        <value>vm05:2181,vm06:2181,vm07:2181</value>
    </property>    
</configuration>

image.png

hdfs-site.xml配置

hdfs-site.xml文件主要配置和HDFS相关的属性, 同样位于hadoop/etc/hadoop路径下

<!--hdfs-site.xml配置-->
<configuration>
<!-- NameNode数据存储目录 -->
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file://${hadoop.tmp.dir}/name</value>
  </property>
 
  <!-- DataNode数据存储目录 -->
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file://${hadoop.tmp.dir}/data</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</value>
  </property>
 
  <!-- NameNode的RPC通信地址 -->
  <property>
    <name>dfs.namenode.rpc-address.mycluster.nn1</name>
    <value>vm06:8020</value>
  </property>
 
<property>
    <name>dfs.namenode.rpc-address.mycluster.nn2</name>
    <value>vm07:8020</value>
  </property>
 
 
  <!-- NameNode的http通信地址 -->
  <property>
    <name>dfs.namenode.http-address.mycluster.nn1</name>
    <value>vm06:9870</value>
  </property>
  <property>
    <name>dfs.namenode.http-address.mycluster.nn2</name>
    <value>vm07:9870</value>
  </property>
 
 
  <!-- 指定NameNode元数据在JournalNode上的存放位置 -->
  <property>
    <name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://vm06:8485;vm07: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>
 
  <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
  </property>
</configuration>
mapred-site.xml配置
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
yarn-site.xml配置
<configuration>
    <!-- ResourceManager连接的最大等待时间(毫秒) -->
    <property>
        <name>yarn.resourcemanager.connect.max-wait.ms</name>
        <value>2000</value> <!-- 设置ResourceManager连接的最大等待时间为2000毫秒 -->
    </property>
    <!-- 启用ResourceManager的高可用性 -->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value> <!-- 启用ResourceManager的高可用性 -->
    </property>
    <!-- 启动故障自动恢复 -->
    <property>
        <name>yarn.resourcemanager.ha.automatic-failover.enable</name>
        <value>true</value> <!-- 启动故障自动恢复 -->
    </property>
    <!-- 启用内嵌式的故障自动恢复 -->
    <property>
        <name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
        <value>true</value> <!-- 启用内嵌式的故障自动恢复 -->
    </property>
    <!-- 设置ResourceManager所属的集群ID -->
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>yarn-rm-cluster</value> <!-- 设置ResourceManager所属的集群ID为 yarn-rm-cluster -->
    </property>
    <!-- 设置ResourceManager的ID列表 -->
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value> <!-- 设置ResourceManager的ID列表为 rm1,rm2 -->
    </property>
    <!-- 设置ResourceManager节点rm1的主机名 -->
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>vm05</value> <!-- 设置ResourceManager节点rm1的主机名为 vm05 -->
    </property>
    <!-- 设置ResourceManager节点rm2的主机名 -->
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>vm07</value> <!-- 设置ResourceManager节点rm2的主机名为 vm07 -->
    </property>
    <!-- 启用ResourceManager的状态恢复 -->
    <property>
        <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value> <!-- 启用ResourceManager的状态恢复 -->
    </property>
    <!-- 设置存储ResourceManager状态信息的ZooKeeper地址 -->
    <property>
        <name>yarn.resourcemanager.zk.state-store.address</name>
        <value>vm05:2181,vm06:2181,vm07:2181</value> <!-- 设置存储ResourceManager状态信息的ZooKeeper地址为  -->
    </property>
    <!-- 设置ResourceManager节点rm1的地址 -->
    <property>
        <name>yarn.resourcemanager.address.rm1</name>
        <value>vm05:8032</value> <!-- 设置ResourceManager节点rm1的地址为 vm05:8032 -->
    </property>
    <!-- 设置ResourceManager节点rm1的调度器地址 -->
    <property>
        <name>yarn.resourcemanager.scheduler.address.rm1</name>
        <value>vm05:8034</value> <!-- 设置ResourceManager节点rm1的调度器地址为 vm05:8034 -->
    </property>
    <!-- 设置ResourceManager节点rm1的Web应用地址 -->
    <property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>vm05:8088</value> <!-- 设置ResourceManager节点rm1的Web应用地址为 vm05:8088 -->
    </property>
    <!-- 设置ResourceManager节点rm2的地址 -->
    <property>
        <name>yarn.resourcemanager.address.rm2</name>
        <value>vm06:8032</value> <!-- 设置ResourceManager节点rm2的地址为 vm06:8032 -->
    </property>
    <!-- 设置ResourceManager节点rm2的调度器地址 -->
    <property>
        <name>yarn.resourcemanager.scheduler.address.rm2</name>
        <value>vm06:8034</value> <!-- 设置ResourceManager节点rm2的调度器地址为 vm06:8034 -->
    </property>
    <!-- 设置ResourceManager节点rm2的Web应用地址 -->
    <property>
        <name>yarn.resourcemanager.webapp.address.rm2</name>
        <value>vm06:8088</value> <!-- 设置ResourceManager节点rm2的Web应用地址为 vm06:8088 -->
    </property>
    <!-- 设置ZooKeeper的地址,用于协调ResourceManager的高可用性和故障自动恢复 -->
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>vm05:2181,vm06:2181,vm07:2181</value> <!-- 设置ZooKeeper的地址,用于协调ResourceManager的高可用性和故障自动恢复为vm05:2181,vm06:2181,vm07:2181 -->
    </property>
    <!-- 启用日志聚合 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value> <!-- 启用日志聚合 -->
    </property>
    <!-- 设置Hadoop使用的ZooKeeper地址 -->
    <property>
        <name>hadoop.zk.address</name>
        <value>vm05:2181,vm06:2181,vm07:2181</value> <!-- 设置Hadoop使用的ZooKeeper地址为 vm05:2181,vm06:2181,vm07:2181 -->
    </property>
    <!-- 设置NodeManager的辅助服务 -->
    <property>
        <name>yarn.nodemanager.aux-sevices</name>
        <value>mapreduce_shuffle</value> <!-- 设置NodeManager的辅助服务为 mapreduce_shuffle -->
    </property>
    <!-- 设置MapReduce Shuffle服务的类 -->
    <property>
        <name>yarn.nodemanager.aux-sevices.mapreduce_shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandle</value> <!-- 设置MapReduce Shuffle服务的类为 org.apache.hadoop.mapred.ShuffleHandle -->
    </property>        
</configuration>
workers文件配置

workers文件的名称是在hadoop-env.sh 文件中指定的。在 hadoop-env.sh 文件中,可以找到一个环境变量

#export HADOOP_WORKERS="${HADOOP_CONF_DIR}/workers"

,它指定了workers 文件的路径。通常情况下,HADOOP_WORKERS 的默认值是 ${HADOOP_CONF_DIR}/workers ,其中 ${HADOOP_CONF_DIR} 是指向 Hadoop 配置文件目录的环境变量。

注意:旧版本的hadoop中这里使用的是slaves

cd  /home/hadoop/hadoop/etc/hadoop
vim workers

键入以下信息

vm05
vm06
vm07

image.png
此文件配置集群中的所有hostname。

注:所有节点配置内容保持一致

启动JournalNode集群

在Hadoop中,JournalNode集群用于存储NameNode的编辑日志。它们帮助确保在NameNode发生故障时不会丢失数据,并支持NameNode的高可用性和故障转移。 JournalNode集群是Hadoop分布式文件系统(HDFS)的关键组件,用于维护持久化的NameNode编辑日志,以便在发生故障时进行恢复。

hadoop/sbin/hadoop-daemon.sh  start journalnode
jps

出现JournalNode进程说明启动正常

格式化namenode

本文中设置了vm06、vm07为namenode节点,在vm06节点执行以下指令

##  在vm06节点(NameNode主节点)上,使用以下命令对 NameNode进行格式化
hadoop/bin/hdfs namenode -format  
hadoop/bin/hdfs zkfc -formatZK
hadoop/bin/hdfs namenode
##在备用节点vm07进行同步主节点的元数据
 hadoop/bin/hadoop namenode -bootstrapStandby 
##所有节点关闭zookeeper集群
zkServer.sh stop 
 
##所有节点关闭 journalnode集群
/home/hadoop/hadoop/bin/hdfs  --daemon stop journalnode
 
##所有节点启动zookeeper集群
zkServer.sh start 

#主节点vm06启动集群
 hadoop/sbin/start-all.sh 

image.png
查看启动正常之后,根据配置的路径配置环境变量

完善环境变量
cd 
vim /etc/profile

完善以下环境变量值

source /etc/profile
export ZOOKEEPER_HOME=/home/hadoop/zookeeper
export HADOOP_HOME=/home/hadoop/hadoop/
export PATH=${ZOOKEEPER_HOME}/bin:${HADOOP_HOME}/sbin/:${HADOOP_HOME}/bin/:$PATH

加载环境变量

source .bash_profile

如果对各位读者有帮助欢迎关注、点赞、转发,后续会继续更新关于hadoop内部组件的相关操作文章。


本文转载自: https://blog.csdn.net/weixin_73350116/article/details/135964499
版权归原作者 necessary653 所有, 如有侵权,请联系我们删除。

“hadoop ha安装”的评论:

还没有评论