美文网首页
Hadoop面试问题和回答4

Hadoop面试问题和回答4

作者: 小小少年Boy | 来源:发表于2018-08-06 17:18 被阅读0次

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发现副本不会,自然会进行复制副本。

相关文章

  • Hadoop面试问题和回答4

    1 HDFS数据块复制时的目的节点的选择原则? 1 和客户端在同一节点或者同一个机架2 选择其他机架3 和第二个一...

  • 面试题汇总:Hadoop

    1.《Hadoop常见面试题》 2.《Hadoop面试45个题目及答案》 3.《一些Hadoop面试题及答案》 4...

  • 回答 | 4道过滤菜鸟的iOS面试题

    回答 | 4道过滤菜鸟的iOS面试题 回答 | 4道过滤菜鸟的iOS面试题

  • 回答面试问题

    先简述,再展开。

  • 面试问题回答

    大部分人都身在职场,少不了经历面试。面试主要是提问题,问题很灵活,不好回答。那么怎么回答问题呢? ...

  • 面试回答问题

    第一条,永远是:不要慌张;没听懂的问题需要重复去问; Broad then deep features, desi...

  • 前端面试之一问一答套路

    其实不光前端面试会有问答环节,在任何的面试上都有面试官提出问题,你回答,或者你提出问题面试官回答的环节,由于本人应...

  • 16-Hive快速入门与一个月总结

    1.Linux 2.MySQL 3.Hadoop 4.Hadoop常用操作 问题:使用MapReduce实现joi...

  • 人生处处面试官

    昨天看沟通圣经,在求职面试部分,书中写到,“面试官问这类问题(注:不好回答的问题。例如:你有哪些长处和弱点?)不...

  • 破解面试中,最难回答的25个问题

    面试常遇到一些纠结的问题,回答稍有不慎,就跳进面试陷阱,让你落败。以下总结了面试中最难回答的25个问题,帮助你在面...

网友评论

      本文标题:Hadoop面试问题和回答4

      本文链接:https://www.haomeiwen.com/subject/ffjgvftx.html