Hadoop HA高可用集群搭建测试

本文档详细介绍了如何在三台机器上搭建Hadoop HA高可用集群,包括环境准备、Zookeeper安装、Hadoop NameNode和ResourceManager HA配置,以及集群的启动、关闭和监控。通过HA架构,可以避免NameNode单点故障,确保集群稳定性。
摘要由CSDN通过智能技术生成

摘要

  在Hadoop2.0之前,只有一个NameNode,若NameNode机器出现故障,那么整个集群都无法使用。这个架构存在单点故障的隐患。之后推出了HA的架构,即有两个NameNode,一台为active状态,一台为standby状态。active NameNode对外提供服务,standby实时同步了active NameNode的元数据,当active NameNode节点出现故障,standby NameNode节点可立即切换为active状态并对外提供服务。所以,在实际生产中一般采用HA架构。这里用三台机器测试搭建Hadoop高可用集群。

一、环境与软件版本

CentOS release 6.8 (Final) 64-bit  
(注:lsb_release -a 命令查看操作系统版本,file /bin/ls 命令查看操作系统位数)
JDK 1.8.0_45
hadoop-2.6.0-cdh5.7.0
zookeeper3.4.6.tar.gz

二、主机规划

Host 安装软件 进程
hadoop001 hadoop、zookeeper NameNode、DFSZKFailoverController、JournalNode、DataNode 、 ResourceManager 、JobHistoryServer、NodeManager 、QuorumPeerMain
hadoop002 hadoop、zookeeper NameNode 、DFSZKFailoverController、JournalNode 、DataNode 、ResourceManager 、NodeManager 、QuorumPeerMain
hadoop003 hadoop、zookeeper JournalNode 、DataNode 、NodeManager、QuorumPeerMain

三、目录规划

名称 路径 备注
$HADOOP_HOME /home/hadoop/app/hadoop-2.6.0-cdh5.7.0
Data $HADOOP_HOME/data
Log $HADOOP_HOME/logs
hadoop.tmp.dir $HADOOP_HOME/tmp 需要手工创建,权限 777
$ZOOKEEPER_HOME /home/hadoop/app/zookeeper3.4.6

四、环境准备

1、设置ip地址(3台)

[root@hadoop001 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:60:E8:D2
TYPE=Ethernet
UUID=055d1cdb-65d4-406e-b797-f00342d412f7
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO="static"
IPADDR=192.168.137.130
NETMASK=255.255.255.0
GATEWAY=192.168.137.2
DNS1=10.64.0.10

查看ip命令:hostname -i
根据情况修改IPADDR,BOOTPROTO修改为static,ONBOOT修改为yes,修改为后执行

service network restart

然后执行

ifconfig

查看是否成功。

2、关闭防火墙(3台)
执行命令

service iptables stop

然后执行

service iptables status

验证是否关闭

3、关闭防火墙开机自动启动(3台)
执行命令

chkconfig iptables off

然后查看是否生效

chkconfig --list | grep iptables

显示off即为成功关闭。

4、设置主机名(3台)
查看主机名命令

hostname

修改主机名

vi /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=hadoop001

5、修改hosts文件,将ip和hostname绑定(3台)

[root@hadoop001 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.130 hadoop001
192.168.137.131 hadoop002
192.168.137.132 hadoop003

修改完成后,ping hadoop001测试是否能够ping通。如能通说明host已经生效。

6、设置3台机器SSH互相通信
这里我用hadoop用户进行操作,之后搭建hadoop集群也用此用户。
先操作hadoop001机器。
进程hadoop用户的家目录

ll -a

即可显示隐藏目录.ssh。先删除这个文件

rm -rf .ssh

然后执行

ssh-keygen

一直按回车键

[hadoop@hadoop001 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/hadoop/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /hadoop/.ssh/id_rsa.
Your public key has been saved in /hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
74:78:50:05:7e:c8:bb:2a:f1:45:c4:0a:9c:38:90:dc hadoop@hadoop001
The key's randomart image is:
+--[ RSA 2048]----+
| ..+ o ..ooo.    |
|  o E +  =o.     |
|     . .oo* .    |
|       ..o.o     |
|        S..      |
|      .   ..     |
|       o ..      |
|      . ..       |
|       ..        |
+-----------------+

待生成.ssh目录后,进入.ssh目录,查看里面的文件

-rw------- 1 hadoop hadoop  668 Sep 27 10:28 id_dsa
-rw-r--r-- 1 hadoop hadoop  606 Sep 27 10:28 id_dsa.pub

然后执行

cat id_rsa.pub >> authorized_keys

将hadoop001的公钥写进authorized_keys中。

然后在hadoop002,hadoop003执行生成.ssh目录操作,将.ssh目录下的
id_dsa.pub文件用scp命令传输给hadoop001。例hadoop002

scp id_dsa.pub hadoop@hadoop001:/home/hadoop/.ssh/id_dsa.pub2

在传输的时候,我们将hadoop002机器上的id_dsa.pub重命名为id_dsa.pub2,以便区分。
以上操作做完后,再执行

cat id_rsa.pub2 >> authorized_keys
cat id_rsa.pub3 >> authorized_keys

将hadoop002,hadoop003的公钥写进authorized_keys中。然后再将authorized_keys用scp命令分发给hadoop002,hadoop003。例如发给hadoop002

scp authorized_keys hadoop@hadoop002:/home/hadoop/.ssh/

分发完成后,在hadoop001机器上执行ssh hadoop002看是否能够免密码登录到hadoop002机器上。如果登录成功,说明SSH配置成功。最好在几台机器上互相登录验证。

7、安装JDK、设置环境变量
这里用root用户,将jdk设置到全局环境中
将jdk包mv到/usr/java下,执行

[root@hadoop001 java]# tar -xzvf jdk-8u45-linux-x64.gz

解压完成后,设置环境变量

vi /etc/profile

添加java环境变量

 export JAVA_HOME&#
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值