Hadoop HA高可用安装过程和wordcount实例

一、HA介绍

HA是为解决HDFS中单点故障。
高可用通过主备NameNode来解决问题,如果当NameNode(active)发生故障,则切换到备用NameNode(standby)上。

在这里插入图片描述
DateNode中数据时间等发生变化(不断)都要跟NameNode汇报,为了防止单点故障,所以我们用HA高可用方式。

我们准备两台NameNode,一台正在工作(active)的NameNode,一台备用(standby)的NameNode。如果NameNode(active)故障了,standby状态的NameNode变为active状态的NameNode,active状态的NameNode变为standby状态的NameNode。这一种转换是由JournalNode管理。

JournalNode是用来管理NameNode资源共享。当JournalNode发现NameNode有问题,就切换NameNode的当前状态。
JournalNode不放一台:JournalNode如果一台出故障了,跟只有一台NameNode一样,数据都没有了,也不安全。
JournalNode放三台:过半原则。

ZooKeeper管理JournalNode,NameNode。不用手动改变它们standy和active状态。并且它有两个进程:Failover Controller Active和Failover Controller Standby监视NameNode。

如果NameNode(active )挂了,Failover Controller Active就汇报给ZooKeeper,ZooKeeper发现NameNode(active )挂了,就检查Failover Controller是不是standby准备好了,如果准备好了就将NameNode(active )自动切换成NameNode(standby)。每个NameNode都有一个ZooKeeperFailoverController监视

我们的安装方案如下图。只有三台的,将NN-2也放在node01,DN在node02,node03
在这里插入图片描述

二、前期准备!!!

准备 四台虚拟机 ,且四台虚拟机能相互ping通。可根据这个链接学习https://blog.youkuaiyun.com/Dlychee/article/details/106756219

并且要将 Xshell和Xftp连接虚拟机 ,可根据这个链接学习https://blog.youkuaiyun.com/Dlychee/article/details/106756519

知识点1:按“i”编辑文件,编辑完内容后,按“Esc”键,然后输入“:wq”为保存编辑内容并退出,输入“:q!”为不保存编辑内容并退出。

知识点2:在敲当前目录下文件名的时候可以按 Tab 键,它会自动帮你补全文件名。

(一)、安装jdk

这里给一个jdk-7u67-linux-x64.rpm
网盘链接: https://pan.baidu.com/s/1cwuoJLPcclQEKwJSqaNMIQ
提取码:688f

我们将四台虚拟机都开启且与Xshell连接上。
在这里插入图片描述

首先配置node01虚拟机的jdk,在node01上操作以下步骤

1.将在Windows中的jdk.rpm文件传输给node01。 (rpm相当于Windows的exe文件)

右边部分为虚拟机中root目录下
首先,单击“新建文件传输”。然后,在左边部分找到在Windows下jdk-7u67-linux-x64.rpm文件,右键,单击“传输”。

在这里插入图片描述
2.输入命令

rpm -i jdk-7u67-linux-x64.rpm

在这里插入图片描述
3.查询jdk安装路径

whereis java

在这里插入图片描述
4.配置全局环境变量
(1)进入profile中进行编辑的命令,“vi + 文件路径”表示打开文件,并将光标置于最后一行首 。

vi + /etc/profile

按“i”编辑文件,编辑完内容后,按“Esc”键,然后输入“:wq”为保存编辑内容并退出,输入“:q!”为不保存编辑内容并退出。(后面将不再重复此知识点。)

(2)在它最后插入:

export JAVA_HOME=/usr/bin/java
export PATH=$PATH:$JAVA_HOME/bin

在这里插入图片描述
5.使环境变量生效(每次修改过/etc/profile文件后记得一定要source一下

source /etc/profile

6.输入命令jps,如果出现-bash: jps: command not found
在这里插入图片描述
(1)此时更改环境变量,输入命令:

vi + /etc/profile

(2)更改刚刚前面输入的内容:

export JAVA_HOME=/usr/bin/java
export PATH=$PATH:/usr/java/jdk1.7.0_67/bin

(3)使环境变量生效

source /etc/profile

(4)再次输入命令jps,查看是否出现Jps
在这里插入图片描述
这时候我们虚拟机中 node01中的jdk安装成功

开始配置node02,node03,node04虚拟机的jdk
7.现在我们将node01中的jdk分发给node02,node03,node04中。

在虚拟机node01中,我们cd到存放jdk.rpm文件的目录下(这里我们的jdk刚刚放在了根目录中,所以cd ~),然后输入以下命令将jdk发送给node02:

scp jdk-7u67-linux-x64.rpm node02:'pwd'

scp是发送命令,pwd是当前目录。即将jdk-7u67-linux-x64.rpm文件发送给node02的当前目录下。

不要忘了还要发送给node03,node04。

scp jdk-7u67-linux-x64.rpm node03:'pwd'
scp jdk-7u67-linux-x64.rpm node04:'pwd'

在这里插入图片描述
8.查看node02,node03,node04是否接收到jdk-7u67-linux-x64.rpm。

(1)我们将Xshell软件的右下角的 “” 图标单击一下,然后选择全部会话
在这里插入图片描述
(2)在Xshell全部会话框中输入 ll ,然后按“Enter”键。来查看jdk是否传输成功。
在这里插入图片描述
当每台虚拟机中都出现jdk-7u67-linux-x64.rpm,则证明传输成功。
在这里插入图片描述
如果没有显示jdk-7u67-linux-x64.rpm,有可能是虚拟机之间不能ping通。

9.分别在node02,node03,ndoe04上执行rpm安装命令。

rpm -i jdk-7u67-linux-x64.rpm 

在这里插入图片描述
10.在node01上cd /etc,在此目录下把profile文件分发到node02、node03、node04上。

scp profile node02:`pwd`
scp profile node03:`pwd`
scp profile node04:`pwd`

在这里插入图片描述
11.看node02、node03、node04这三台机子的jdk是否装好

(1)利用Xshell全部会话栏输入source /etc/profile
在这里插入图片描述(2)利用Xshell全部会话栏输入jps
在这里插入图片描述在每台虚拟机中我们可以看到 jps 进程启动,则四台虚拟机的jdk安装成功。
在这里插入图片描述

(二)、同步所有服务器时间

1.查看每台虚拟机当前时间。(时间不能差太大,否则集群启动后某些进程跑不起来。)
利用Xshell全部会话栏输入命令 date,看四台虚拟机当前时间,一不一样。
在这里插入图片描述
2.时间不同步,我们可以做一下操作。(不管时间同步同步,这里建议都执行一遍以下操作。)

(1)用yum安装时间同步器。

利用Xshell全部会话栏输入

yum -y install ntp

当最后显示“Complete!”安装完成。

(2)执行时间同步命令。
这里我们做和阿里云第一台服务器时间同步。(做这个的前提是虚拟机ping外网能ping通,例如ping www.baidu.com能成功。)

利用Xshell全部会话栏输入

ntpdate time1.aliyun.com

在这里插入图片描述3.再次查看每台虚拟机当前时间。
利用Xshell全部会话栏输入命令 date,看四台虚拟机当前时间,一不一样。

(三)、配置文件检查

1.查看四台虚拟机的HOSTNAME是否正确。
cat为查看命令,我们的hostname存放在/etc/sysconfig/network路径中。

利用Xshell全部会话栏输入命令

cat /etc/sysconfig/network

这里给出node01和node02截图
在这里插入图片描述在这里插入图片描述
如果不正确可以输入命令vi /etc/sysconfig/network来更改。

2.查看四台虚拟机IP映射是否正确。

利用Xshell全部会话栏输入命令

cat /etc/hosts

这里给出node01和node02截图,查看最后四行,IP和主机名是否一一对应。
在这里插入图片描述在这里插入图片描述如果不正确,可以输入命令vi /etc/hosts来更改。

3.查看四台虚拟机中SELINUX=disabled

利用Xshell全部会话栏输入命令

cat /etc/sysconfig/selinux

在这里插入图片描述
如果不正确,可以输入命令vi /etc/sysconfig/selinux来更改。

4.查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值