这里是大数据小白系列,这是本系列的第四篇,来看一个真实世界Hadoop集群的规模,以及我们为什么需要Hadoop Federation。

首先,我们先要来个直观的印象,这是你以为的Hadoop集群:

这是真实世界的Hadoop集群:

因为,NameNode(下称NN)中的元数据记录了各个数据块的存储位置。

所以,元数据的大小,与数据块的数量成正比。

当集群存储的数据规模到达一定程度时,NN将成为整套系统中的瓶颈所在。NN的存储能力是有限的,不管是磁盘存储还是内存存储。

为了解决这个问题,HDFS中引入了联邦(Federation)的概念。

联邦:由若干具有国家性质的行政区域(有国、邦、州等不同名称)联合而成的统一国家,各行政区域有自己的宪法、立法机关和政府,联邦也有统一的宪法、立法机关和政府。—— 维基百科

体现在HDFS上,就是“集权”到“分权”的过程,引入了多对NN(Active NN + Standby NN这里称为一对),让他们各自实现“区域自治”。

物理上是这样的,所有的DN(DataNode)需向所有的NN汇报状态。

逻辑上是这样的,一对NN只负责管理属于自己名称空间下的目录。

因此,并不是某对NN管理某些DN,而是对HDFS进行划分,即逻辑划分。

上面这样规模的集群,有可能划分出数十个“邦”,各自管理“邦”内的数据,这样就基本实现了NN的水平扩展,同时,还对提高整个系统的可用性有帮助,毕竟,某一对NN宕机,只会对系统产生局部影响。

注:HDFS联邦并不强制要求各NN都做HA,只是通常是这样配置的,即每个“邦”的NN都是成对出现的。

好了,关于HDFS的所有介绍就先到这,那些没讲到的,都不重要(误),下期我们将开始介绍新的内容:MapReduce的基本概念。Cheers!


公众号 程序员杂书馆,大数据内容持续更新中,欢迎关注!

大数据小白系列——HDFS(4)的更多相关文章

  1. 大数据小白系列——HDFS(3)

    这里是大数据小白系列,这是本系列的第三篇,介绍HDFS中NameNode选举,JournalNode等概念. 上一期我们说到了为解决NameNode(下称NN)单点失败问题,HDFS中使用了双NN的机 ...

  2. 大数据小白系列——HDFS(2)

    这里是大数据小白系列,这是本系列的第二篇,介绍一下HDFS中SecondaryNameNode.单点失败(SPOF).以及高可用(HA)等概念. 上一篇我们说到了大数据.分布式存储,以及HDFS中的一 ...

  3. 大数据小白系列——HDFS(1)

    [注1:结尾有大福利!] [注2:想写一个大数据小白系列,介绍大数据生态系统中的主要成员,理解其原理,明白其用途,万一有用呢,对不对.] 大数据是什么?抛开那些高大上但笼统的说法,其实大数据说的是两件 ...

  4. 大数据小白系列——MR(1)

    一部编程发展史就是一部程序员偷懒史,MapReduce(下称MR)同样是程序员们用来偷懒的工具. 来了一份大数据,我们写了一个程序准备分析它,需要怎么做? 老式的处理方法不行,数据量太大时,所需的时间 ...

  5. 大数据小白系列 —— MapReduce流程的深入说明

    上一期我们介绍了MR的基本流程与概念,本期稍微深入了解一下这个流程,尤其是比较重要但相对较少被提及的Shuffling过程. Mapping 上期我们说过,每一个mapper进程接收并处理一块数据,这 ...

  6. 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)

    引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...

  7. 大数据学习系列之五 ----- Hive整合HBase图文详解

    引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环 ...

  8. 大数据学习系列之六 ----- Hadoop+Spark环境搭建

    引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合 ...

  9. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

随机推荐

  1. mysql数据库1

      desc 表名;  显示表结构

  2. linux下安装mysql-5.6.41

    1.下载安装包,下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads .选择完版本,然后点击下方 No thanks, just ...

  3. 【python】gevent协程例子

    说在前面:用协程还是多线程需要仔细考量.我在做实验时请求了100w个ip,分别用pool为1000的协程和64个线程来跑,结果是多线程的速度是协程的10倍以上. 一个简单的协程例子 #!/usr/bi ...

  4. HighCharts基本使用

    一.简叙 HighCharts是一个非常强大的画图插件,在以后的工作汇报,数字展示,它将是一把利器.既然是插件,那么就有它的使用规则,我们只需要遵循它的使用规则,就可以画出我们想要的展示效果了.期待吗 ...

  5. Allegro PCB Design GXL (legacy) 从dxf文件中导入板框

    Allegro PCB Design GXL (legacy) version 16.6-2015 新建brd文件,并设置好相应的参数之后,点击菜单:File > Import > DXF ...

  6. WIN 7 使用shutdown命令设置电脑自动关机

    使用组合键“WIN + R”,在弹出的对话窗“运行”中输入“cmd”,点击“确定”按钮或直接按回车键“Enter”.  设置电脑在一定时间后关机,比如60分钟,在弹出的对话框中,输入“shutdown ...

  7. easyui 布局之window和panel一起使用时,拉动window宽高时panel不跟随一起变化

    项目开发中布局是每一个组件都由最外层的window和内部的至少一个panel组成,其他的细小组件再依次放到panel中. 问题:当拉动外部的window时我们希望内部的panel的宽高也跟着变化,但是 ...

  8. 如何查看响应端口号被个程序占用(Windows)

        我们以80端口为例,在dos输入命令“ netstat  -aon|findstr  "80" 后按回车显示如下,可以看到占用80端口对应的程序的PID号为1752     ...

  9. mac pro 基本使用

    command+空格  调出搜索框 可以输入:网络,就是配置ip等信息 可以输入:终端,就是命令行窗口 可以输入:触控板,可以调节多点触控版 可以输入:系统偏好设置,进行配置 触控板:多点触控——两个 ...

  10. Typora开启行内公式

    文件→偏好设置→Markdown,勾选内联公式,重启typora 输入$,按Esc键会自动在后面加上一个$,然后在这两个$之间输入公式.