HDFS的读写流程和核心概念

HDFS的写流程

1.HDFS客户端创建对象DistributedFileSystem,该对象中封装了与HDFS文件系统操作相关方法

2.调用DistributedFileSystem的create()方法,通过RPC请求NameNode创建文件

NameNode会执行检测,检测通过就会为本次请求记下一条记录,返回FSDataOutputStream输出流对象给客户端用于写数据

3.客户端通过FSDataOutputStream输出流开始写入数据

4.客户端写入数据时,将数据分成一个个数据包(packet 默认64k),内部组件DataStreamer请求NameNode挑出适合存储数据副本的一组DataNode地址。

5.传输的反方向上,会通过ACK机制校验数据包传输是否成功

6.客户端完成数据写入后,在FSDataOutputStream输出流输出流上调用close()方法关闭。

=================================================================

1.核心概念———Pipeline管道

这是HDFS在上传文件写数据过程中采用的一种数据传输方式。

客户端把数据穿个第一个Datanode,然后第一个datanode传给第二个。。。这就是管道

 2.核心概念——ACK应答响应

ACK就是确定字符,在HDFS管道传输数据过程中,传输的反方向会进行ACK校验,确保数据传输安全。如果上一级没有收到ACK响应或者收到的不全就可以再传输一次。

3.核心概念——默认的3副本存储策略 

3副本存储位置:

第一副本:优先客户端本地,否则随机

第二副本:不同于第一块副本的不同机架

第三副本:第二块副本相同机架不同机器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值