HDFS HA(High Availability)高可用性

参考文献:

官方文档

全文翻译

Hadoop组件之-HDFS(HA实现细节)



这张图片的个人理解

由于NameNode在Hadoop1只有一个节点,可能存在(SPOF)single point of file单节点故障。包括机器故障,软件硬件升级等。

在Hadoop2砍死你使用两台机器配置为NameNode,在任何时候,只有一个处于Active状态。为了保证两个NameNode节点的数据统一性,1:datanode同时向两个NameNode发送心跳和块报告;2:NameNode中磁盘存储的文件主要有镜像文件和编辑日志,通过JournalNode日志节点保证edits文件的可靠性。如下图:

![](http://images2015.cnblogs.com/blog/1047249/201707/1047249-20170709182235228-2073804790.png)
无ZKFC
![](http://images2015.cnblogs.com/blog/1047249/201707/1047249-20170710113906134-727438154.jpg)
有ZKFC
active的NameNode向JournalNode写如日志文件,standby的NameNode读取JournalNode中的数据,以达到编辑日志文件的同步。
通过Zookeeper的ZKFailoverContral来监控active的健康状态,一旦出现问题,安排Client访问第二个NameNode,从而实现熱备。

需要配置的四个地方(遵循官方文档即可)

1.share edits
JournalNode
2.NameNode
Active,Standby
3.Client
Proxy代理(Zookper)
4.fence(篱笆)
同一时刻仅有一个NameNode对外提供服务
隔离方式:
SSHfence:两个NameNode之间相互能够无密码登录

hdfs-site.xml

core-site.xml

启动HA

#1.在各个journalnode节点上启动journalNode服务
$ sbin/hadoop-daemon.sh start journalnode
#2.在nn1上对其进行格式化并启动
$ bin/hdfs namenode -format
$ sbin/hadoop-daemon.sh start namenode
#3.在nn2上同步nn1上的源数据
$ bin/hdfs namenode -bootstrapStandby
#4.在nn2上启动NameNode节点
$ sbin/hadoop-daemon.sh start namenode
#此时,两个节点都是standby状态
#5.将nn1节点的NameNode设置为activity
$ bin/hdfs haadmin -transitionToActive nn1
#获取状态
$ bin/hdfs haadmin -getServiceState nn1
#6.开启各个节点的DataNode
$ sbin/hadoop-deamon.sh start datanode

集群规划

123 124 125
NameNode NameNode
ZKFC ZKFC
JournalNode JournalNode JournalNode
不需要SecondaryNameNode,因为不会出现重启情况

Zookeeper用于自动故障转移

配置依据官方文档即可

启动带监控的HDFS HA服务器集群

#1.关闭所有hdfs服务
#2.启动ZK集群
$ bin/zkServer.sh start
#3.初始化HA在ZooKeeper中状态
$ bin/hdfs zkfc -formatZK
#4.启动HDFS文件系统,看到所有的NameNode节点上多了一个DFSZKFailoverController即zkfc启动成功
可以通过kill -9 1234来验证

HDFS HA(High Availability)高可用性的更多相关文章

  1. 第6章 HDFS HA配置

    目录 6.1 hdfs-site.xml文件配置 6.2 core-site.xml文件配置 6.3 启动与测试 6.4 结合ZooKeeper进行自动故障转移 在Hadoop 2.0.0之前,一个H ...

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

    HA With QJM 目标 本指南概述了HDFS高可用性(HA)功能以及如何使用Quorum Journal Manager(QJM)功能配置和管理HA HDFS集群. 本文档假设读者对HDFS集群 ...

  3. [转]HDFS HA 部署安装

    1. HDFS 2.0 基本概念 相比于 Hadoop 1.0,Hadoop 2.0 中的 HDFS 增加了两个重大特性,HA 和 Federaion.HA 即为 High Availability, ...

  4. HDFS HA架构以及源代码引导

    HA体系架构 相关知识介绍 HDFS master/slave架构,HDFS节点分为NameNode节点和DataNode节点. NameNode存有HDFS的元数据:主要由FSImage和EditL ...

  5. 6,HDFS HA

    目录 HDFS HA 一.HA(High Availability)的使用原因 二.HA的同步 三.HA的自动容灾 HDFS HA 一.HA(High Availability)的使用原因 1.1 在 ...

  6. hadoop(二):hdfs HA原理及安装

    早期的hadoop版本,NN是HDFS集群的单点故障点,每一个集群只有一个NN,如果这个机器或进程不可用,整个集群就无法使用.为了解决这个问题,出现了一堆针对HDFS HA的解决方案(如:Linux ...

  7. 【解决】HDFS HA无法自动切换问题

    [解决]HDFS HA无法自动切换问题 原因: 最早设置为root互相登录,可是zkfc服务是hdfs账号运行的,没有权限访问到root的id_rsa文件.更改为hdfs账号免密钥登录恢复正常.   ...

  8. Hadoop 学习笔记 (十) hadoop2.2.0 生产环境部署 HDFS HA Federation 含Yarn部署

    其他的配置跟HDFS-HA部署方式完全一样.但JournalNOde的配置不一样>hadoop-cluster1中的nn1和nn2和hadoop-cluster2中的nn3和nn4可以公用同样的 ...

  9. Hadoop 学习笔记 (九) hadoop2.2.0 生产环境部署 HDFS HA部署方法

    step1:将安装包hadoop-2.2.0.tar.gz存放到某一个目录下,并解压 step2:修改解压后的目录中的文件夹/etc/hadoop下的xml配置文件(如果文件不存在,则自己创建) 包括 ...

随机推荐

  1. ArcGIS几种数据格式2

    各种数据的组织形式不一样,其中shp.Coverage.Raster.CAD为文件类型,Geodatabase为空间数据库.Workstaion常用Coverage数据格式.现在ESRI公司推荐使用G ...

  2. 【工作】Proxy Server的优化 - 检测目标网站URL变化

    在工作中,我在组里负责一个Proxy(代理)的Module,这个Module是针对微软的Office 365的邮件门户OWA实现,工作起来后,用户访问Office 365 OWA,无需再输入Offic ...

  3. Cocos2d-x v3.1项目创建(三)

    Cocos2d-x v3.1项目创建(三) Cocos2d-x官方为我们提供了用于创建.编译.运行和部署的一套命令行的工具集,也就是上篇文章中我们所提到的Cocos2d-Console,它位于我们的引 ...

  4. 算法练习-寻找最小的k个数

    练习问题来源 https://wizardforcel.gitbooks.io/the-art-of-programming-by-july/content/02.01.html 要求 输入n个整数, ...

  5. django orm 多对多自定义第三张表

    # -*- coding: utf-8 -*-# Generated by Django 1.11.11 on 2018-09-02 08:07from __future__ import unico ...

  6. 将caj转换成pdf

    1.工具准备 电脑一台 CAJViewer 7.2 foxit pdf reader [主是要拥有一个pdf的虚拟打印机,你也可以安装其他的可以取的pdf虚拟打印机的软件.] 2.步骤 (1)用CAJ ...

  7. 【转】C内存操作函数

    一.malloc/calloc 名称: Malloc/calloc 功能:  动态内存分配函数 头文件: #include <stdlib.h> 函数原形: void *malloc(si ...

  8. win8下使用IIS服务器及自定义服务器端包含模块(SSI)步骤

    配置完过段时间就容易忘记,特此记录. 1.开启IIS服务器. 默认没有安装,需要先安装. 打开控制面板--> 打开“程序和功能”--> 左侧选择“启用或关闭windows功能”--> ...

  9. IOS 纯代码添加 Button Image Label 添加到自定义View中

    @interface ViewController () /**获取.plist数据*/ @property (nonatomic,strong) NSArray *apps; @end @imple ...

  10. framework7中一行的字如果过多就省略号显示的CSS写法

    .order-info-title { text-overflow: ellipsis !important; white-space: nowrap !important; overflow: hi ...