Hadoop--客户端读写hdfs数据

详细见hadoop面试整理一

1.HDFS写文件

在这里插入图片描述

  1. 客户端将文件写入本地磁盘的文件中
  2. 当临时文件大小达到一个Block大小时,HDFS Client 通知 NameNode,申请写入文件
  3. NameNode 在HDFS的文件系统中创建一个文件,并把该 Block ID 和要写入的 DataNode 的列表返回给客户端
  4. 客户端收到这些消息后,将临时文件写入 DataNodes
    1.客户端将文件内容写入第一个 DataNode(一般以 4kb 单位进行传输)。
    2.第一个 DataNode 接收后,将数据写入本地磁盘,同时也传输给第二个 DataNode。
    3.以此类推到最后一个 DataNode,数据在 DataNode 之间是通过 pipeline 的方式进行复制的。
    4.后面的 DataNode 接受完数据后,都会发送一个确认给前一个 DataNode,最终第一个 DataNode 返回确认给客户端。
    5.当客户端接收到整个 Block 的确认后,会向 NameNode 发送一个最终的确认信息。
    6.如果写入某个 DataNode 失败,数据会继续写入其他的 DataNode。然后 NameNode 会找另一个好的 DataNode 继续复制,以保证冗余性。
    7.每个Block 都会有一个校验码,并存放到独立的文件中,以便读的时候验证其完整性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值