Hadoop面试问题和回答4

1 HDFS数据块复制时的目的节点的选择原则?

1 和客户端在同一节点或者同一个机架
2 选择其他机架
3 和第二个一样的机架但是不用的节点上

2 HDFS删除一个文件的过程源码?

1 客户端通过RPC,执行ClientProtocol.delete()发送删除请求

2 Namenode获得删除数据块的信息,执行底层的方法,删除所有数据块和对应的租约信息(先删除数据库信息和meta信息,删除之后执行数据节点中的数据块删除)

注意:
HDFS中的数据删除并不是直接删除,而是先放到类似于回收站的地方(trash),可供恢复。
当达到生命期限后(6小时),将彻底删除,并由Namenode修改相关的元数据信息
可以清空trash:bin/hadoop dfs expunge

3 删除一个数据块的原因?

数据块损坏、多余数据块、无效数据块等
Datanode会异步单独开启线程删除磁盘数据

4 NameNode的租约管理器?

租约是名字节点给与租约持有者(Client)的,在一定时间内的权限(写文件)。客户端需要不断的更新租约信息。

每一个打开的文件在租约管理器中都会有一条记录,所以已经打开的文件不能再被其他客户端打开,关闭文件时需要释放租约,每一条租约记录包括客户端信息,租约最新更新时间,打开的文件。

租约管理器会定时检查租约,对于长时间没有进行租约更新的文件,名字节点会进行租约恢复(租约恢复时针对已经打开的文件),关闭文件。

租约管理器中有两个租约过期时间:

  • 软超时时间(1分钟)
  • 硬超时时间(一小时),不可配置。

在超过了硬超时时间后会触发,租约恢复。

1)租约恢复过程:
总:选择恢复主节点,修改恢复文件的租约信息,收集参与租约恢复数据块的信息,找到最优的一个数据块取其长度,申请新的数据块版本号,然后同步数据块的版本号和长度,上报结果给Namenode并进行数据块信息的更新。
1)选择恢复主节点
首先在正常工作的数据流管道成员中选择一个作为恢复的主节点,其他节点作为参与节点,并将这些信息加入到主数据节点描述符中,等待该数据节点的心跳上报;

2)修改恢复文件的租约信息
名字节点触发的租约恢复会修改恢复文件的租约信息,他们的租约持有者统一改为NN_Recovery ;

3)租约恢复收集数据块信息
主数据节点收到指令后开始租约恢复,首先联系各个参与节点,开始租约恢复收集数据块信息.

4)找最小值数据块为恢复后的长度
根据收集到的数据块信息,找到最小值的教据块作为数据块恢复后的长度。

5)申请新数据块版本号
主数据节点向名字节点重新申请数据块版本号

6)同步长度和版本号
将长度和版本号同步到各个节点,同步结束后这些数据块拥有相同的大小和新的版本号。更新主要是利用DataNode上的FSDataSet.updata()方法进行更新

7)将恢复的结果上报给namenode.

8)Namenode更新块映射信息等
名字节点更新blockMap以及DataNodedescriptor中的信息等

2)租约检测
第1步,获取最老的已过期的租约。
第2步,得到此租约中保存的文件Id。
第3步,关闭这些文件Id对应的文件,并将这些文件Id从此租约中移除。
第4步,如果此租约中已经没有打开的文件Id,则将此租约从系统中进行移除。

5 在向HDFS中写数据的时候,当写入某个副本的时候出错怎么处理?

1、使用数据队列和确认队列来保证,无论那个节点故障了,都不会发生数据的丢失

2、使用租约恢复:

正常的数据节点辉被赋予一个新的版本号(租约信息中的时间戳版本),当故障恢复后发现版本信息不对,故障节点就会本删除

在当前正常的数据节点根据租约信息找到一个主DataNode,并与其他节点通信,选择虽小的数据块大小的DataNode,与其他节点进行同步,之后重新建立管道

3、NameNode的副本机制,在管线中删除故障节点,带文件关闭后,namenode发现副本不会,自然会进行复制副本。

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

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,898评论 2 89
  • Zookeeper用于集群主备切换。 YARN让集群具备更好的扩展性。 Spark没有存储能力。 Spark的Ma...
    Yobhel阅读 7,236评论 0 34
  • 关于比尔·盖茨,大家可能有些误解。 一提到他,几乎人尽皆知他没有读完大学,似乎他能取得今时今日的成就全仰仗于他的主...
    LIZZY小梨阅读 506评论 1 2
  • 推酷诚意满满的创业周刊《创业周刊》, 下面是内容列表,干货多多,也可以移步到官网进一步阅读。 融资并购 腾讯史上最...
    推酷阅读 220评论 0 0
  • 轮滑不止 青春不败 4月12日晚8:20我校于小广场开展轮滑与滑板运动专场,展现了青春之活力,呈现了轮滑之魅力。一...
    xynn阅读 257评论 0 1