zoukankan      html  css  js  c++  java
  • HDFS架构

    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上。
  • 相关阅读:
    visual studio code for mac 的对齐快捷键
    ios 抓取真机的网络包
    iOS 引入framework的常见问题和原理
    iOS 4种开发者身份的官方说明
    iOS NSObject 的 isa 属性的类型 Class
    iOS 子类初始化方法中 为什么要使用 self = [super init] 对self进行赋值
    Linux和windows下修改tomcat内存
    idea将项目打成war包
    web.xml引入 xml (tomcat 7.0.52) 以上版本报错
    ideal 切换git和svn
  • 原文地址:https://www.cnblogs.com/JaxYoun/p/12336031.html
Copyright © 2011-2022 走看看