大数据小白系列——HDFS(4)
这里是大数据小白系列,这是本系列的第四篇,来看一个真实世界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)的更多相关文章
- 大数据小白系列——HDFS(3)
这里是大数据小白系列,这是本系列的第三篇,介绍HDFS中NameNode选举,JournalNode等概念. 上一期我们说到了为解决NameNode(下称NN)单点失败问题,HDFS中使用了双NN的机 ...
- 大数据小白系列——HDFS(2)
这里是大数据小白系列,这是本系列的第二篇,介绍一下HDFS中SecondaryNameNode.单点失败(SPOF).以及高可用(HA)等概念. 上一篇我们说到了大数据.分布式存储,以及HDFS中的一 ...
- 大数据小白系列——HDFS(1)
[注1:结尾有大福利!] [注2:想写一个大数据小白系列,介绍大数据生态系统中的主要成员,理解其原理,明白其用途,万一有用呢,对不对.] 大数据是什么?抛开那些高大上但笼统的说法,其实大数据说的是两件 ...
- 大数据小白系列——MR(1)
一部编程发展史就是一部程序员偷懒史,MapReduce(下称MR)同样是程序员们用来偷懒的工具. 来了一份大数据,我们写了一个程序准备分析它,需要怎么做? 老式的处理方法不行,数据量太大时,所需的时间 ...
- 大数据小白系列 —— MapReduce流程的深入说明
上一期我们介绍了MR的基本流程与概念,本期稍微深入了解一下这个流程,尤其是比较重要但相对较少被提及的Shuffling过程. Mapping 上期我们说过,每一个mapper进程接收并处理一块数据,这 ...
- 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)
引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...
- 大数据学习系列之五 ----- Hive整合HBase图文详解
引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环 ...
- 大数据学习系列之六 ----- Hadoop+Spark环境搭建
引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合 ...
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...
随机推荐
- 使用gulp-babel转换Es6出现exports is not defined 问题
//问题描述:当使用import导入模块时,出现exports is not defined //1.安装插件 npm install --save-dev babel-plugin-transfor ...
- ubuntu 安装Mysql8.0
1. 去官网下载安装包 下载链接:点击打开链接 https://dev.mysql.com/downloads/mysql/ 如果你的系统是32位选择第一个,64位选择第二个 也可以用wget 下载 ...
- java----Java的栈,堆,代码,静态存储区的存储顺序和位置
转载:https://blog.csdn.net/zhangbaoanhadoop/article/details/82193497
- yii2 Menu组件的使用
1.首先引入类 use yii\widgets\Menu; 2.配置组件 <?php echo Menu::widget([ //ul的样式以及相应的属性 'options' => ['c ...
- PHP编译安装时常见错误解决办法
转载自:http://www.bkjia.com/PHPjc/1008013.html This article is post on https://coderwall.com/p/ggmpfa c ...
- 用 DocumentFormat.OpenXml 和Microsoft.Office.Interop.Word 写入或者读取word文件
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...
- meaven
一个项目管理工具.java语言编写的,所以可以跨平台 https://mvnrepository.com/
- HDU 3294 Girls' research(manachar模板题)
Girls' researchTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- Vim设计
像 IDE 一样使用 vim 免费的编程中文书籍索引
- SVN不要显示问号
让SVN不要显示未进行版本控制的文件(夹)图标的问号: 1.选择TortoiseSVN→SettIngs 2.Overlays→取消勾选Unversioned,点击“应用”,然后重启电脑即可