4.hdfs的工作机制

(工作机制的学习主要是为加深对分布式系统的理解,以及增强遇到各种问题时的分析解决能力,形成一定的集群运维能力)

 

注:很多不是真正理解hadoop技术体系的人会常常觉得HDFS可用于网盘类应用,但实际并非如此。要想将技术准确用在恰当的地方,必须对技术有深刻的理解

4.1 概述

1.        HDFS集群分为两大角色:NameNode、DataNode  (Secondary Namenode)

2.        NameNode负责管理整个文件系统的元数据

3.        DataNode 负责管理用户的文件数据块

4.        文件会按照固定的大小(blocksize)切成若干块后分布式存储在若干台datanode上

5.        每一个文件块可以有多个副本,并存放在不同的datanode上

6.        Datanode会定期向Namenode汇报自身所保存的文件block信息,而namenode则会负责保持文件的副本数量

7.        HDFS的内部工作机制对客户端保持透明,客户端请求访问HDFS都是通过向namenode申请来进行

4.2 HDFS写数据流程

4.2.1 概述

客户端要向HDFS写数据,首先要跟namenode通信以确认可以写文件并获得接收文件block的datanode,然后,客户端按顺序将文件逐个block传递给相应datanode,并由接收到block的datanode负责向其他datanode复制block的副本

4.2.2 详细步骤图

4.2.3 详细步骤解析

1、根namenode通信请求上传文件,namenode检查目标文件是否已存在,父目录是否存在

2、namenode返回是否可以上传

3、client请求第一个 block该传输到哪些datanode服务器上

4、namenode返回3个datanode服务器ABC

5、client请求3台dn中的一台A上传数据(本质上是一个RPC调用,建立pipeline),A收到请求会继续调用B,然后B调用C,将真个pipeline建立完成,逐级返回客户端

6、client开始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,A收到一个packet就会传给B,B传给C;A每传一个packet会放入一个应答队列等待应答

7、当一个block传输完成之后,client再次请求namenode上传第二个block的服务器。

4.3. HDFS读数据流程

4.3.1 概述

客户端将要读取的文件路径发送给namenode,namenode获取文件的元信息(主要是block的存放位置信息)返回给客户端,客户端根据返回的信息找到相应datanode逐个获取文件的block并在客户端本地进行数据追加合并从而获得整个文件

4.3.2 详细步骤图

4.3.3 详细步骤解析

1、跟namenode通信查询元数据,找到文件块所在的datanode服务器

2、挑选一台datanode(就近原则,然后随机)服务器,请求建立socket流

3、datanode开始发送数据(从磁盘里面读取数据放入流,以packet为单位来做校验)

4、客户端以packet为单位接收,现在本地缓存,然后写入目标文件

HDFS的工作机制,HDFS写数据流程,HDFS读数据流程(来自学习资料)相关推荐

  1. 全方位揭秘!大数据从0到1的完美落地之HDFS的工作机制

    HDFS的工作机制 开机启动Namenode过程 非第一次启动集群的启动流程 我们应该知道,在启动namenode之前,内存里是没有任何有关于元数据的信息的.那么启动集群的过程是怎样的呢?下面来叙述一 ...

  2. 图文详解 HDFS 的工作机制及其原理

    大家好,我是大D. 今天开始给大家分享关于大数据入门技术栈--Hadoop的学习内容. 初识 Hadoop 为了解决大数据中海量数据的存储与计算问题,Hadoop 提供了一套分布式系统基础架构,核心内 ...

  3. Hadoop大数据分布式文件系统hdfs的工作机制

    HDFS集群分为两大角色:NameNode.DataNode NameNode负责管理整个文件系统的元数据 DataNode 负责管理用户的文件数据块 namenode工作机制 namenode职责: ...

  4. 3-39客户端(client)写数据到HDFS的流程

    1)客户端向NN提出写数据请求 2)NN发现没有问题,同意客户端写数据 3)由于数据很大,需要分块:BLK1,BLK2三副本存在.此时客户端向NN提出写BLK1请求 4)NN决定将BLK1放在哪几个D ...

  5. hdfs haadmin使用,DataNode动态上下线,NameNode状态切换管理,数据块的balance,HA下hdfs-api变化(来自学习资料)

    1.2.4集群运维测试 HA集群中两个namenode状态的管理命令 [root@mini2 hadoop-2.6.4]# bin/hdfs haadmin Usage: DFSHAAdmin [-n ...

  6. hdfs haadmin使用,DataNode动态上下线,NameNode状态切换管理,数据块的balance,HA下hdfs-api变化(来自学习资料)...

    1.2.4集群运维测试 HA集群中两个namenode状态的管理命令 [root@mini2 hadoop-2.6.4]# bin/hdfs haadmin Usage: DFSHAAdmin [-n ...

  7. 大数据之-Hadoop3.x_MapReduce_ReduceTask工作机制并行度---大数据之hadoop3.x工作笔记0125

    然后我们继续看一下maptask的工作机制,这个前面也有提过了, 可以看到左边是maptask处理完的数据,然后到了reduceTask阶段,会首先把数据 拉取过来当然,是按照分区拉取的对吧.这是co ...

  8. NAMENODE工作机制,元数据管理(元数据存储机制、元数据手动查看)、元数据的checkpoint、元数据目录说明(来自学习资料)

    NAMENODE工作机制 学习目标:理解namenode的工作机制尤其是元数据管理机制,以增强对HDFS工作原理的理解,及培养hadoop集群运营中"性能调优"."nam ...

  9. Kafka整体结构图、Consumer与topic关系、Kafka消息分发、Consumer的负载均衡、Kafka文件存储机制、Kafka partition segment等(来自学习资料)

    ##1. Kafka整体结构图 Kafka名词解释和工作方式  Producer : 消息生产者,就是向kafka broker发消息的客户端.  Consumer : 消息消费者,向kafka ...

最新文章

  1. 开发人员学Linux(10):CentOS7安装配置代码质量管理平台SonarQube6.4
  2. 从零实现来理解机器学习算法:书籍推荐及障碍的克服
  3. ubuntu 安装sun-java5-jdk
  4. 【华科考研复试机试题】华中科技大学考研复试机试题解题报告
  5. mysql5.0 php_php怎么连接mysql5.0?
  6. 怎样用c语言定义高幂整数,位操作运算的奇技淫巧!(附源码)
  7. oracle获取上年年初,【Oracle】TRUNC:获取去年年初和年末,获取月初和月末;
  8. 单链表算法设计(含大厂面试题)
  9. [渝粤教育] 西南科技大学 电力电子技术 在线考试复习资料
  10. kali安装图像处理软件
  11. 飞行管理计算机在ATA章节,民航ATA章节中英文对照.docx
  12. 扫线法快速判断凹多边形相交
  13. vue ui创建项目的常见错误
  14. HashMap的七种遍历方式
  15. 三十二个vbs整蛊代码,快去发给你的好朋友
  16. 如何在vue项目中引入video.js插件
  17. html中账号绑定怎么做,绑定账号.html
  18. 左倾红黑树(LLRBT)删除操作及相关性质总结答疑
  19. 关于信息论中熵、相对熵、条件熵、互信息、典型集的一些思考
  20. PLC编程安卓版 兼容三菱FX PLC编程指令 软件在线仿真 硬件PLC工控板蓝牙与手机蓝牙在线下载程序 在线仿真

热门文章

  1. 使用Xpath+多进程爬取诗词名句网的史书典籍类所有文章。update~
  2. 前端基础之CSS_1
  3. 6.Android的学习(Intent跳转页面,活动之间传递数据)
  4. wxWidgets:wxWidgets 验证器示例
  5. wxWidgets:wxStaticText类用法
  6. boost::mp11::mp_third相关用法的测试程序
  7. boost::mp11::mp_any相关用法的测试程序
  8. boost::geometry::coordinate_system用法的测试程序
  9. boost::endian模块实现reverse的测试程序
  10. boost::gregorian模块实现查找给定月份最后一天的测试程序