HDFS中高可用性HA的讲解

HDFS中高可用性HA的讲解

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。

  

时间: 2024-10-07 06:09:40

HDFS中高可用性HA的讲解的相关文章

hadoop2.x hdfs完全分布式 HA 搭建

官网链接 hadoop配置文件主页:http://hadoop.apache.org/docs/r2.5.2/ HDFS hapdoop HA全分布配置:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html 总结步骤: 准备工作: 1. 配置java环境变量 可以在/etc/profile 或者在/root/.bash_profile中进行配置 2

HDFS原理分析-——HA机制 avatarnode原理

一.问题描述 由于namenode 是HDFS的大脑,而这个大脑又是单点,如果大脑出现故障,则整个分布式存储系统就瘫痪了.HA(High Available)机制就是用来解决这样一个问题的.碰到这么个问题,首先本能的想到的就是冗余备份,备份的方式有很多种,前辈们设计的有元数据备份方案,secondary namenode以及avatarnode等方案.而这些方案中最有优势的自然是能够让HDFS以最短的时间完成故障切换的方案.也就是我们今天要讨论的avatarnode. 二.基本结构 primar

Hadoop详解 - HDFS - MapReduce - YARN - HA

为什么要有Hadoop? 从计算机诞生到现今,积累了海量的数据,这些海量的数据有结构化.半结构化.非 结构的数据,并且这些海量的数据存储和检索就成为了一大问题. 我们都知道大数据技术难题在于一个数据复杂性.数据量.大规模的数据计算. Hadoop就是为了解决这些问题而出现的. Hadoop的诞生 Doug Cutting是Lucene的作者,当时Lucene面临和谷歌同样的问题,就是海量的数据存储和检索,于是就诞生了Nutch. 在这之后,谷歌的大牛就为解决这个问题发了三篇论文(GFS.Map-

HDFS HA与QJM(Quorum Journal Manager)介绍及官网内容整理

问题导读 1.HDFS HA与QJM解决了什么问题? 2.HDFS HA与QJM区别是什么? 3.在HA(两个namenode)架构下,如何访问hdfs文件? [使用QJM构建HDFS HA架构(2.2+)] 本文主要介绍HDFS HA特性,以及如何使用QJM(Quorum Journal Manager)特性实现HDFS HA. 一.背景 HDFS集群中只有一个Namenode,这就会引入单点问题:即如果Namenode故障,那么这个集群将不可用,直到Namenode重启或者其他Namenod

利用QJM实现HDFS的HA策略部署与验证工作记录分享

1.概述  Hadoop2.X中的HDFS(Vsersion2.0)相比于Hadoop1.X增加了两个重要功能,HA和Federation.HA解决了Hadoop1.X  Namenode中一直存在的单点故障问题,HA策略通过热备的方式为主NameNode提供一个备用者,并且这个备用者的状态一直和主Namenode的元数据保持一致,一旦主NameNode挂了,备用NameNode可以立马转换变换为主NameNode,从而提供不间断的服务.另外,Federation特性,主要是允许一个 HDFS

HDFS概述(5)————HDFS HA

HA With QJM 目标 本指南概述了HDFS高可用性(HA)功能以及如何使用Quorum Journal Manager(QJM)功能配置和管理HA HDFS集群. 本文档假设读者对HDFS集群中的一般组件和节点类型有一般的了解.有关详细信息,请参阅HDFS架构指南. 本指南讨论如何使用Quorum Journal Manager(QJM)配置和使用HDFS HA,以在Active和Standby NameNodes之间共享编辑日志 背景 在Hadoop 2.0.0之前,NameNode是

3.配置HDFS HA

安装zookeeper下载zookeeper编辑zookeeper配置文件创建myid文件启动zookeeper配置HDFS HA配置手动HA配置自动HA启动HDFS HA namenode负责管理整个hdfs集群,如果namenode故障则集群将不可用.因此有必须实现namenode高可用. hdfs的高可用原理参考: HADOOP(二):hdfs 高可用原理 zookeeper简介: zookeeper集群安装 安装zookeeper 下载zookeeper 下载zookeeper并解压到/

kafka-connect-hdfs连接hadoop hdfs时候,竟然是单点的,太可怕了。。。果断改成HA

2017-08-16 11:57:28,237 WARN [org.apache.hadoop.hdfs.LeaseRenewer][458] - <Failed to renew lease for [DFSClient_NONMAPREDUCE_-1756242047_26] for 30 seconds. Will retry shortly ...> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyE

Hadoop HA HDFS启动错误之org.apache.hadoop.ipc.Client: Retrying connect to server问题解决

近日,在搭建Hadoop HA QJM集群的时候,出现一个问题,如本文标题. 网上有很多HA的博文,其实比较好的博文就是官方文档,讲的已经非常详细.所以,HA的搭建这里不再赘述. 本文就想给出一篇org.apache.hadoop.ipc.Client: Retrying connect to server错误的解决的方法. 因为在搜索引擎中输入了错误问题,没有找到一篇解决问题的.这里写一篇备忘,也可以给出现同样问题的朋友一个提示. 一.问题描述 HA按照规划配置好,启动后,NameNode不能