码迷,mamicode.com
首页 > 其他好文 > 详细

HDFS中高可用性HA的讲解

时间:2017-08-23 00:40:25      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:访问   stand   技术   文件的   日志   over   provider   地址   oop   

HDFS Using QJM

  HA使用的是分布式的日志管理方式

一:概述

1.背景

  如果namenode出现问题,整个HDFS集群将不能使用。

  是不是可以有两个namenode呢

    一个为对外服务->active

    一个处于待机->standby

    他们的之间共享的元数据交 nameservice

 

2.HDFS HA的几大中重点

  1)保证两个namenode里面的内存中存储的文件的元数据同步

    ->namenode启动时,会读镜像文件

  2)变化的记录信息同步

  3)日志文件的安全性

    ->分布式的存储日志文件

      ->2n+1个,使用副本数保证安全性

    ->使用zookeeper监控

      ->监控两个namenode,当一个出现了问题,可以达到自动故障转移。

      ->如果出现了问题,不会影响整个集群

      ->zookeeper对时间同步要求比较高。

  4)客户端如何知道访问哪一个namenode

    ->使用proxy代理

    ->隔离机制

    ->使用的是sshfence

    ->两个namenode之间无密码登录

  5)namenode是哪一个是active

    ->zookeeper通过选举选出zookeeper。

    ->然后zookeeper开始监控,如果出现文件,自动故障转移。

 

二:准备

3.规划集群

  namenode    namenode

  journalnode     journalnode    journalnode -->日志的分布,这是日志节点,考虑的是日志的安全性。

  datanode     datanode      datanode

 

4.关闭所有的进程

  技术分享

5.保存分布式的源数据,复制一份用来HDFS HA的检测。

  先是第一台,先将分布式的etc/hadoop,保存为dist-hadoop,保存源数据。

  同时,新建tmp。

  至于第二台以及第三台,在分发之间再进行配置。

  技术分享

三:配置文件

6.将core-site.xml中的文件系统删除,并添加新的文件系统

  以前的是使用是配置一台,现在配置多态namenode,使用的方式是nameservices的名称的方式。

  技术分享

  添加配置

  技术分享

 

7.配置hdfs-site.xml

  技术分享

8.继续配置hdfs-site.xml

  dfs.nameservices的配置

  技术分享

  dfs.ha.namenodes.[nameservice ID]的配置

  包括rpc,http的namenodde地址。

  技术分享

  dfs.namenode.shared.edits.dir的配置

  这是journalnode的地址

  技术分享

  dfs.journalnode.edits.dir 的配置

  这是journalnode的日志存储的目录

  先新建目录:

  技术分享

  技术分享

 

  dfs.client.failover.proxy.provider的配置

  技术分享

  dfs.ha.fencing.methods的配置

  使用的方式为ssh拦截

  技术分享

  

  

9.配置完成,在分发之前先进行的是目录的规划

  技术分享

  技术分享

10.分发

  技术分享

 

四:启动

11.启动三台的日志节点

  技术分享

  技术分享

12.格式化第一台虚拟机

  因为是共享数据,所以格式化一台虚拟机即可。

  技术分享

13.紧接着,同步元数据(在第二台上写命令)

  最好是bin/hdfs namenode -help查看

  技术分享

 

14.启动namenode(两台虚拟机)

  技术分享

15.启动三台了datanode

  技术分享

16.观看两台的启动状态

  技术分享

  技术分享

17.强制切换状态

  1)、查找帮助命令,属于bin/hdfs haadmin

  技术分享

  2)、具体命令

  技术分享

 

18.结果

  1)、

  技术分享

  2)、

  技术分享

五:再次测试

19.在HDFS上新建目录并上传文件

  技术分享

20.杀死第一台的namenode,进行测试

  技术分享

21.将avtove的状态切换到第二台

  技术分享

22.看第一台是否可以观看hdfs中的文件

  如果可以,说明,HA发挥作用了。

  因为这时proxy提供的接口变成nn2.

  技术分享

 

六:自动故障转移

  前提:关闭所有的进程。

  依赖:zookeeper的监控,组件为:ZKFC。

  启动以后都是standby,选举一个active。

  规划:

  namenode    namenode

  ZKFC             ZKFC

  journalnode     journalnode    journalnode

  datanode     datanode      datanode

  

23.配置core-site.xml

  添加zookeeper的服务,包括主机名和端口号。

  技术分享

 

24.配置hdfs-site.xml

  添加自动故障转移的使能。

  技术分享

 

25.分发

  技术分享

 

26.确定关闭所有的进程

   这一步是开始的基础。

 

26.开启三台的zookeeper服务

  先开启监控。

   技术分享

 

27.初始化HA在zookeeper中的状态bin/hdfs zkfc -formatZK

  在zookepper上创建znode节点。

  技术分享

 

27.观察成功与否

  进入zookeeper目录

  命令:bin/zkCli.sh

  技术分享

28.启动sbin/start-dfs.sh

  前两台虚拟机会出现DFZKFailoverController。

  如果没有开启DFZKFailoverController,可以手动开启,命令是sbin/hadoop-daemon.sh start zkfc。

  技术分享

 

 

七:简单检测

29.展示前两台的虚拟机状态

  技术分享

  技术分享

30.杀死第二台的虚拟机

  技术分享

31.结果

  这时,第一台虚拟机变成active。

   技术分享

HDFS中高可用性HA的讲解

标签:访问   stand   技术   文件的   日志   over   provider   地址   oop   

原文地址:http://www.cnblogs.com/RHadoop-Hive/p/7414057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!