Hadoop 的HA机制

正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制


HA的运作机制

1)hadoop-HA集群运作机制介绍

所谓HA,即高可用(7*24小时不中断服务)

实现高可用最关键的是消除单点故障

hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA

 

2)HDFS的HA机制详解

通过双namenode消除单点故障

namenode协调工作的要点:

A、元数据管理方式需要改变:

内存中各自保存一份元数据

Edits日志只能有一份,只有Active状态的namenode节点可以做写操作

两个namenode都可以读取edits

共享的edits放在一个共享存储中管理(qjournal和NFS两个主流实现)

B、需要一个状态管理功能模块

实现了一个zkfailover,常驻在每一个namenode所在的节点

每一个zkfailover负责监控自己所在namenode节点,利用zk进行状态标识

当需要进行状态切换时,由zkfailover来负责切换

切换时需要防止brain split现象的发生


Hadoop 的HA机制_第1张图片

HA集群的安装部署


集群部署节点角色的规划(10节点):

server01   namenode   zkfc    > start-dfs.sh

server02   namenode   zkfc

 

server03   resourcemanager    > start-yarn.sh

server04   resourcemanager

 

server05   datanode   nodemanager     

server06   datanode   nodemanager     

server07   datanode   nodemanager     

 

server08   journal node    zookeeper

server09   journal node    zookeeper

server10   journal node    zookeeper


集群部署节点角色的规划(3节点)

server01   namenode    resourcemanager  zkfc   nodemanager  datanode   zookeeper   journal node

server02   namenode    resourcemanager  zkfc   nodemanager  datanode   zookeeper   journal node

server05   datanode    nodemanager     zookeeper    journal node


 

环境准备

a、linux系统准备

ip地址配置

    hostname配置

    hosts映射配置

防火墙关闭

init启动级别修改

sudoers加入hadoop用户

ssh免密登陆配置

 

b、java环境的配置

    上传jdk,解压,修改/etc/profile

 

c、zookeeper集群的部署


配置文件

 

core-site.xml

fs.defaultFS

hdfs://ns1/

hadoop.tmp.dir

/home/hadoop/app/hadoop-2.4.1/tmp

ha.zookeeper.quorum

weekend05:2181,weekend06:2181,weekend07:2181

 

 

hdfs-site.xml

dfs.nameservices

ns1

dfs.ha.namenodes.ns1

nn1,nn2

dfs.namenode.rpc-address.ns1.nn1

weekend01:9000

dfs.namenode.http-address.ns1.nn1

weekend01:50070

dfs.namenode.rpc-address.ns1.nn2

weekend02:9000

dfs.namenode.http-address.ns1.nn2

weekend02:50070

dfs.namenode.shared.edits.dir

qjournal://weekend05:8485;weekend06:8485;weekend07:8485/ns1

dfs.journalnode.edits.dir

/home/hadoop/app/hadoop-2.4.1/journaldata

dfs.ha.automatic-failover.enabled

true

dfs.client.failover.proxy.provider.ns1

org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

dfs.ha.fencing.methods

sshfence

shell(/bin/true)

dfs.ha.fencing.ssh.private-key-files

/home/hadoop/.ssh/id_rsa

dfs.ha.fencing.ssh.connect-timeout

30000

/configuration>

 

 

测试


使用的命令上hdfs  haadmin

可用 hdfs  haadmin –help查看所有帮助信息

可以看到,状态操作的命令示例:

查看namenode工作状态   

hdfs haadmin -getServiceState nn1

 

standby状态namenode切换到active

hdfs haadmin –transitionToActive nn1

 

active状态namenode切换到standby

hdfs haadmin –transitionToStandby nn2

 




你可能感兴趣的:(Hadoop)