菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
55
0

HDFS架构

原创
05/13 14:22
阅读数 83211

HDFS架构(Master-Slave)

  • 几个进程的角色
    1. nameNode(master):用于保存、管理、持久化文件的元数据(文件名、文件副本数、文件块大小、文件块列表),同时还要接收客户端的文件读写请求。
    2. secondaryNameNode:用于实时同步文件元数据,给nameNode服务做副本,担当高可用备份,nameNode处于正常状态时secondaryNameNode只sandBy。
    3. dataNode(slave):真正存储文件块,分布在每个节点上
    4. dfsClient:向hdfs发请求,当用户发起一个hdfs文件读、写、查询等请求时,集群都会启动一个dfsClient进程,dfsClient先访问nameNode获取文件元数据,然后根据元数据解析出文件分片的分布情况,最后去各dataNode完成真正的读写。它扮演着用户与hdfs交互中间人的角色,同时文件的拆分和拼装也是在dfsClient进程完成的。
  • HDFS文件读写流程
    • 读取:系统接收到用户读请求后,首先启动一个dfsClient进程,这个进程拿着用户传递的文件路径等信息,传递给nameNode,nameNode返回文件分片的分布节点列表,dfsClient就近读取文件分片,并将各分片拼装为完整文件返回给用户。
    • 写入:系统接收到用户写请求后,首先启动一个dfsClient进程,这个进程将写入文件的信息提交给nameNode,nameNode根据集群情况将文件进行分片和位置规划,再将规划信息返回给dfsClient,dfsClient根据规划信息将文件切分成特定的块,然后根据位置规划分别与对应的dataNode建立管道,将分片传输到对应的dataNode上。

相关热门文章

发表评论

0/200
55 点赞
0 评论
收藏
为你推荐 换一批