linux-hadoop高可用集群和Zookeeper

1.hadoop高可用集群
  hadoop高可用集群的配置环境和hadoop分布式部署的配置环境一样。不同的是hadoop的分布式部署只有一个master,其余节点都是leader;而hadoop的高可用集群中通常有两台不同的主机充当 NN (NN是指namenode,也就是master),其中一个master正常工作,状态为 Active ,另一个master用作备用,状态为 Standby ,当 Active NN 发生故障不能工作时它负责接管工作,如果必要,可以提供快速的故障恢复。
  Standby NN想要接管工作就必须和 Active NN 的状态保持同步(元数据保持一致),它们都将会和JournalNodes守护进程通信。当Active NN 执行任何有关命名空间的修改,它需要持久化到一半以上的 JournalNodes 上(通过edits log 持久化存储),而 Standby NN 负责观察 edits log的变化,它能够读取从JNs 中读取 edits 信息,并更新其内部的命名空间。一旦 Active NN出现故障, Atandby NN 将会保证从 JNs 中读出了全部的 Edits,然后切换成 Active 状态。Standby NN 读取全部的 edits 可确保发生故障转移之前,是和 Active NN 拥有完全同步的命名空间状态。为了提供快速的故障恢复,StandbyNN 也需要保存集群中各个文件块的存储位置。为了实现这个,集群中所有的 Database 将配置好 Active NN 和 Standby NN 的位置,并向它们发送块文件所在的位置。
  任何时候,集群中都只能有一个 NN 处于 Active 状态。否则,在两个 Active NN的状态下 NameSpace 状态将会出现分歧,这将会导致数据的丢失及其它不正确的结果。为了保证这种情况不会发生,在任何时间,JNs 只允许一个 NN 充当writer。在故障恢复期间,将要变成 Active 状态的 NN 将取得 writer 的角色,并阻止另外一个 NN 继续处于 Active状态。

2.部署Hadoop高可用集群
  <1> NameNode machines:运行 Active NN 和 Standby NN 的机器需要相同的硬件配置;
  <2> JournalNode machines:也就是运行 JN 的机器。JN 守护进程相对来说比较轻量,所以这些守护进程可以可其他守护线程(比如 NN,YARN ResourceManager)运行在同一台机器上。在一个集群中,最少要运行 3 个 JN 守护进程,这将使得系统有一定的容错能力。当运行 N 个 JN时,系统将最多容忍(N-1)/2 个 JN 崩溃。
  <3> 在Hadoop高可用集群中,Standby NN 也执行namespace 状态的 checkpoints,所以不必要运行Secondary NN、CheckpointNode和BackupNode,事实运行这些守护进程是错误的。

(1) Zookeeper集群至少三台,总节点数为奇数个。
[hadoop@server2 ~]$ tar zxf zookeeper-3.4.9.tar.gz      ##解压安装zookeeper
[hadoop@server2 ~]$ cp zookeeper-3.4.9/conf/zoo_sample.cfg zoo.cfg
[hadoop

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值