Hadoop客户端读写文件

一、HDFS组成角色

1、NameNode:

hdfs元数据管理者,管理namespace(文件系统命名空间),NameNode维护文件系统命名空间。
namespace或其属性的任何更改都由NameNode记录。简写NN。

2、DataNodes:
Datanode是文件系统的工作节点,他们根据管理指令(客户端或者是namenode)调度存储和检索数据。
心跳机制:定期向namenode发送他们所存储的块(block)的列表。简写ND。

3、Client
客户端(client)代表用户与namenode和datanode交互来访问整个文件系统。
开发人员面向client api来编程即可,对namenode、datanode可以无感。

二、HDFS架构设计

1、基本架构


2、读文件流程


①、client向NN发送请求寻找数据对应块的位置。

②、NN返回元数据。如所属机器、那块block_id、先后顺序。

③、client与DN直接通信读取各个块的信息,为并行读取,client合并。

3、写文件流程


①、1)向namenode发送读数据请求后,寻找可以写入的块信息的机器位置所在。
       2)文件过大,写入可能会分成很有block,实际则一个block一个block的申请。
       3)若副本为3,则每次请求返回一个block对应的3个副本的block要存放的位置。

②、1)拿到3个块的datanode,client写入第1个datanode,逐个package包的方式。如64K去发送和接收。
       2)第1个向第2个datanode传输,第2个向第3个传递package。
       3)写完该block后,如果还有则反复进行第1步和第2步。

③、1)所有block写完后,client收到全部写完的ack答复,告诉namenode已写完,client关闭socket流。
       2)datanode也会向namenode报告新增block信息。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值