文档章节

hdfs的那点事

LianM
 LianM
发布于 2016/12/30 19:45
字数 865
阅读 4
收藏 0

Hdfs出现的问题:

Namenode如何判断新的集群加入进来马上能够识别:

       在namenode的工作目录中有一些表示还有一些版本号,这些都可以识别判断;如果想新增节点,直接删除目录然后在重新启动;

       Namenode在format初始化的时候会形成两个标识:

blockPoolId:

clusterId:

新的datanode加入时,会获取这两个标识作为自己工作目录中的标识

一旦namenode重新format后,namenode的身份标识已变,而datanode如果依然持有原来的id,就不会被namenode识别

 

       关于hdfs中副本数量的问题,hdfs中的副本文件的配置有优先级代码中的Configuration>自定义的配置文件>hadoop集群中的配置

Hdfs中的工作机制:

1.        HDFS集群分为两大角色:NameNode、DataNode  (Secondary Namenode)

2.        NameNode负责管理整个文件系统的元数据

3.        DataNode 负责管理用户的文件数据块

4.        文件会按照固定的大小(blocksize)切成若干块后分布式存储在若干台datanode上

5.        每一个文件块可以有多个副本,并存放在不同的datanode上

6.        Datanode会定期向Namenode汇报自身所保存的文件block信息,而namenode则会负责保持文件的副本数量

HDFS的内部工作机制对客户端保持透明,客户端请求访问HDFS都是通过向namenode申请来进行

Hdfs上传数据的流程:

1.       向namedode发送请求,传文件,

2.       namedode发出响应(考虑多种的因素)

3.       hadoop的rpc请求上传第一个文件,上传第一个block,请求返回一个datanode

4.       返回datanode时候考虑很多的因素

5.       副本的实现,在第一个副本进行传输过程中,(假设有3个副本),namenode规定的3台datanode之间会有通信,当客户要上传数据的时候,第一个接收的datanode会通知其他两个datanode请求建立数据传输的通道,当通道建立的时候,会建立一个PIPE LINE(流水线)

第一个datanode一边接收上传的数据(实际接收一个一个的小数据包(默认大小是64k并且以chunk(512byte)为单位进行校验))),同时会通缓冲区向PIPE LINE中发送数据包

6  当数据上传完成的时候,副本数量也将上传完成;

NameNode的数据源的管理:

1.       当文件求请下载的时候,nomenode接受请求,

2.       namenode返回文件的元数据信息

3.       此时客户端会请求datanode下载文件;

NameNode的元数据怎么存储,怎么提高效率:

namenode对数据的管理采用了三种存储形式:

内存元数据(NameSystem)

磁盘元数据镜像文件

数据操作日志文件(可通过日志运算出元数据)

A、内存中有一份完整的元数据(内存meta data)

B、磁盘有一个“准完整”的元数据镜像(fsimage)文件(在namenode的工作目录中)

C、用于衔接内存metadata和持久化元数据镜像fsimage之间的操作日志(edits文件注:当客户端对hdfs中的文件进行新增或者修改操作,操作记录首先被记入edits日志文件中,当客户端操作成功后,相应的元数据会更新到内存meta.data

© 著作权归作者所有

上一篇: MapReduce的那点事
下一篇: Solr如何整合Hbase
LianM
粉丝 0
博文 8
码字总数 5024
作品 0
昌平
私信 提问
ios时间那点事--NSLocale

iOS时间那点事 NSLocale 若你只开发中国区的应用,需要保证用户修改当前语言环境时应用的显示不发生变化。而像NSDateFormatter这样的类,会根据设备的设置,自动返回不同语言的数据。为了保证...

JustBen
2013/08/22
6.5K
0
iOS时间那点事--NSDate

iOS时间那点事 NSDate NSDate对象用来表示一个具体的时间点。 NSDate是一个类簇,我们所使用的NSDate对象,都是NSDate的私有子类的实体。 NSDate存储的是GMT时间,使用的时候会根据 当前应用...

JustBen
2013/08/05
27.5K
0
iOS时间那点事--NSDateFormatter

iOS时间那点事 NSDateFormatter NSDateFormatter是NSFormatter的子类,另,NSFormatter的用途是“将数据在字符串与特定类型的对象之间转换”,目前NSFormatter只有两个子类NSNumberFormatter...

JustBen
2013/08/07
14.8K
1
iOS时间那点事--NSDate分类

iOS 时间那点事 NSDate分类(Catogery) 分类 类,是面向对象语言的基本;类,是具有相同属性和行为的一类事物的概括,这是一种抽象;但是,事物总是多方面的,如此之多以至于我们每每看到深不...

JustBen
2013/08/23
1K
1
ios时间那点事--NSCalendar NSDateComponents

iOS时间那点事 NSCalendar + NSDateComponents 历法能使人类确定每一日再无限的时间中的确切位置并记录历史。 日历,历法,一般历法都是遵循固定的规则的,具有周期性。日历都是已知的或可预...

JustBen
2013/08/22
45K
5

没有更多内容

加载失败,请刷新页面

加载更多

刚哥谈架构 (二) 我眼中的架构师

之前在公司,有小伙伴在向别人介绍我的时候,经常会有人这么说:“刚哥是我们的architcture”,如果来人是老外,心中一定是一惊,心中暗叹,“这位匪首看上去貌不惊人,难道已经做到了架构和...

naughty
40分钟前
3
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
111
4
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
5
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部