HDFS相关面试问题整理

1. HDFS的写流程

HDFS写流程
a) hdfs客户端向namenode发送rpc请求.
b) namenode检查文件是否已经存在, 创建者是否有权进行操作, 成功则会为文件创建记录, 反之客户端抛出异常.
c) 客户端将文件切分成多个packets, 并在内部以数据队列形式管理packets. 然后客户端向namenode申请blocks, 通过选择合适的datanode列表来存放副本.
d) 以pipeline的形式将packet写入所有副本中. DataStreamer以流的形式将packet写入第一个datanode, 然后以此类推写至最后一个.
e) 当datanode接收完成, 会给DFSOutputstream一个确认消息, 而DFSOutputStream中有一个确认队列, 一旦收到确认信息, 就会将相应的包从确认队列中删除, 并为其创建副本.
f) 客户端完成数据写入后, 调用流的close()方法, 关闭数据流.

延申—如果传输过程中datanode出现故障怎么办?
如果有某个datanode故障, 当前管道会关闭, 故障的datanode会被从当前管道移除,剩余的block会继续以管道形式传输, 同时namenode会分配一个新的datanode, 保持replicas维持设定的数量.

2. datanode什么情况下不会备份?

设置备份数为1时, 就不会备份了.

延申—Hadoop中在哪里设置备份数, 是哪个字段?
在hdfs-site.xml中的dfs.replication变量.

3. HDFS中大量小文件带来的问题以及解决方法

问题:
hadoop中目录,文件和块都会以对象的形式保存在namenode的内存中,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值