大数据学习十一:HDFS框架

1、HDFS(Hadoop Distributed File System) 分布式文件存储系统,批处理、高吞吐量而非低延迟。它只支持文件追加和删除(一次写多次读),应用距离数据越近,操作速度越快。

2、HDFS三大守护进程(deamon processe)

    NameNode : 

    A:NameNode是HDFS的命名空间,里面存储着整个HDFS的所有文件的元数据信息,这些信息都会加载到内存中,元数据信息分为两部分,第一部分是文件系统树及整棵树内所有的文件和目录,第二部分是每个文件的各个组成块所在的数据节点信息。第一部分会落地形成文件(命名空间镜像文件和编辑日志文件)永久保存,第二部分的信息是在HDFS启动时,DataNode自动报送给NameNode,所以这个不会永久保存。元数据格式如下(/test/a.log是在hdfs文件系统中的路径,3是这个文件的副本数(副本数可以通过在配置文件中的配置来修改的)。在hdfs中,文件是进行分块存储的,如果文件过大,就要分成多块存储,每个块在文件系统中存储3个副本,以上图为例,就是分成blk_1和blk_2两个块,每个块在实际的节点中有3个副本,比如blk_1的3个副本分别存储在h0,h1,h3中)


 此时存在一个问题,随着文件数目的增加,NameNode存在内存中的信息也越来越大,如何保证内存不溢出?

    DataNode : 

    负责存储数据,最小的单位是block , 默认的bocksize=128M , 若文件258M,则共有block=3,实际占有存储258M,最后一块     只占用2M。每个DataNode最多存储的块数=(repication-1)/ (机架数+2),放置位置随机。

     每隔3秒向NameNode发一次心跳,每隔dfs.blockreport.intervalMsec=6h(默然单位ms)向NameNode发送一次blockReport,

     心跳:DataNode向NameNode报告自身信息,如DataNode容量,DataNode DFS容量等,然后NameNode向DataNode返                回DataNode Command,控制DataNode进行一些操作。

     dfs.heartbeat.interval = 3s     ,         heartbeat.recheck.interval = 300000ms (重新检查时间)

     与DataNode连接超时时间= heartbeat*10 + recheck*2,

sendHeartbeat的具体实现:

1. 首先从datanodeMap中获取发送“心跳”的datanodeDescriptor。在获取的过程中,如果datanodeMap获取的Datanode的hostname与正在发送“心跳”的Datanode的hostname不一致,则抛出异常,并向该Datanode返回DNA_REGISTER 命令。

2. 如果从datanodeMap中获取的DatanodeDescriptor不为空,但是该Datanode的是需要shutdown的节点,则将该节点置为dead。

3. 如果获取的DatanodeDescriptor为空,或者DataNodeDescriptor的状态为not live,则向并向该Datanode返回DNA_REGISTER 命令。

4. 如果DatanodeDescriptor正常,则更新FSNamespace以及DatanodeDescriptor的状态,主要包括capacity、dfsUsed、remaining和xceiverCount。

5. 然后,依次获取DNA_RECOVERBLOCK 、DNA_TRANSFER、DNA_INVALIDATE、KeyUpdateCommand、BalancerBandwidthCommand执行命令返回给Datanode。

6. 最后,判断是不是有UpgradeCommand命令,如果有返回给Datanode进行执行。

    追加内容后块的变化,怎么追加,怎么重新设置块大小和replication数目。

  SecondaryNameNode : 


fsimage : 存储NameNode元数据的镜像文件

edits : 存储NameNode的操作日志

fstime : 保存最近一次的checkpoint时间 , checkpoint为fstime和edits文件的合并时间点

检查点:core-site.xml  fs.checkpoint.period=3600(s) 或者 fs.checkpoint.size=64(M) (edits文件)

(1)检查点到来时,NameNode 生成edits.new文件记录新的操作日志(元数据操作),

(2)原edits文件和fsimage文件下载到本地,在内存中合并为fsimage.ckpt文件

(3)DataNode通知NameNode文件fsimage.ckpt已生成,NameNode下载fsimage.ckpt,并替换为fsimage

(4)edit.new文件替换为edit文件

如何恢复NameNode


HDFS架构总图


(1) Client与NameNode通信,NameNode获取数据信息,供Client进行读写操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容