-
目录
配置环境变量,刷新(master、slave1、slave2都配置一下环境变量)
拷贝jdk、zookeeper到slave1和slave2节点
修改JAVA_HOME 在hadoop-env.sh yarn-env.sh mapred-env.sh 中
-
HDFS -HA模式的工作机制示意图
说明:
1.在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步active namenode的状态,以便能够在它失败时快速进行切换。
hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM。这里我们使用简单的QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode
这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为active状态.
2.hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.6.4解决了这个问题,有两个ResourceManager,一个是Active,一个是Standby,状态由zookeeper进行协调
-
集群规划——三节点高可用
主机名 |
IP |
安装软件 |
运行进程 |
master |
192.168.8.101 |
jdk、hadoop、zookeeper |
NameNode、DFSZKFailoverController(zkfc) ResourceManager DataNode、NodeManager JournalNode、QuorumPeerMain |
slave1 |
192.168.8.102 |
jdk、hadoop、zookeeper |
NameNode、DFSZKFailoverController(zkfc) ResourceManager DataNode、NodeManager JournalNode、QuorumPeerMain |
slave2 |
192.168.8.103 |
jdk、hadoop、zookeeper |
DataNode、NodeManager JournalNode、QuorumPeerMain |
-
Hadoop HA集群搭建
配置环境变量,刷新(master、slave1、slave2都配置一下环境变量)
export JAVA_HOME=/opt/software/jdk1.8.0_162
export HADOOP_HOME=/opt/software/hadoop-2.7.3
export ZOOKEEPER_HOME=/opt/software/zookeeper-3.4.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin
安装zookeeper集群
server.ID=host:port:port ID就是myid文件中配置的数字。下面会有介绍 第一个端口( port )是从( follower )机器连接到主( leader )机器的端口, 第二个端口是用来进行 leader 选举的端口。 每台机器使用三个端口,分别是: clientPort ,2181 ; port , 2888 ; port , 3888 。 |
配置文件
cd /opt/software/zookeeper-3.4.6/conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
dataDir=/opt/software/zookeeper-3.4.6/zkData
dataLogDir=/opt/software/zookeeper-3.4.6/logs
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
mkdir /opt/software/zookeeper-3.4.6/zkData
mkdir /opt/software/zookeeper-3.4.6/logs
echo 1 > /opt/software/zookeeper-3.4.6/zkData/my
-
拷贝文件
-
拷贝jdk、zookeeper到slave1和slave2节点
-
scp -r jdk1.8.0_162/ slave1:$PWD