hadoop笔记——HA部署

搭建集群免秘钥的两个需求场景

  1. 管理脚本远程管理节点,再集群中随便挑一台,把公钥发给所有
  2. 搭建HA时,NameNode的zkfc需要免秘钥,用来管理自己和对方(故障应对)

HA配置大体过程

  1. 逻辑物理映射
  2. JN相关配置,信息描述
  3. 故障发生时免秘钥配置(还有一种是shell脚本)

要点

  1. 记得格式化之前启动JN
  2. 第一台格式化之后启动,并且让后续NameNode以standby启动,就不用格式化了
  3. ZKFC有三只手:zk,自己的namenode,还有对另外一个namenode。因此免秘钥不仅要和自己,还有和对方

配置 部署

不能直接格式化,两个namenode。需要先开启jn和zk。配置具体如下图

  1. 启动三个节点JN(包含免秘钥过程),配置zk

  2. NameNode格式化

  3. 启动第一个nn

  4. zk格式化  hdfs zkfc  -formatZK  (在zk上创建一个新节点)

  5. start-dfs.sh

HA 
------------------------------------------

tar xf zookeeper

 

这里三个节点两个端口号的原因:

zk两个状态,可用和不可用。

zk作为分布式协调,zk集群应该要一直可靠运行。因此用主从模型leader和follower,所有增删改都由f交给leader。

挂了之后无主模型,要推举新的leader,对外继续提供服务

200ms之内就可以恢复leader,挂了之后用3888选leader

之所以可以快,是因为选举过程不用使用争抢。server.x的这个x数字平时平级,在需要选举时,亮出id,谁大谁就是leader。

zk两个id,其中有一个事物id:zxid,还有一个server id

 

有事物时,不能强要求强一致性,强一致性可能破坏可用性。

一般有过半机制的存在,即有一半在事务决策或者选择leader通过就行

zookeeper中设置了三个节点:

server.1=192.168.72.12:2888:3888
server.2=192.168.72.13:2888:3888
server.3=192.168.72.14:2888:3888

以我这三个节点为例,如果只启动第一个节点(指令:zkServer.sh start)

那么会提示not running

如果启动12,就会使2变为leader,因为这个时候已经过半了;即使再启动3,3也和1一样,是follower

 

 

最后的关键来了。

如果kill -9 加上第一个nn

那么第一个节点zkfc还在,nn直接gg,node02去zk里争抢创建新点,变成active

即使重启node01 的nn:hadoop-daemon.sh start namenode

此时node02还是active,node01变为standby

 

如果kill -9 加上第二个zkfc

那么第一个节点的zkfc将node02变为standby,同时将node01变为active

如果这个时候重新启动第二个zkfc:hadoop-daemon.sh start zkfc,并且kill -9 加上第一个zkfc

那么第二个节点的zkfc将node01变为standby,同时将node02变为active

其实这意味着zkfc被再次启动可以立刻参与到环境中去

 

 

HA之后再次启动过程

按照上表重新部署

  1. node02、node03、node04依次zkServer.sh start,由于过半机制的存在,node02为leader
  2. node01作为管理节点,start-dfs.sh
  3. 停止:stop-dfs.sh;zkServer.sh stop

 

zookeeper的监听者功能(watcher)

  1. zkCli.sh
  2. ls /
  3. ls /hadoop-ha/mycluster
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值