HDFS分布式文件存储系统
1. Hadoop是什么
1.1 Hadoop架构
Hadoop由三个模块组成:分布式文件存储HDFS、分布式计算MapReduce、资源调度引擎Yarn
1.2 分布式是什么
分布式:利用一批通过网络连接的、廉价普通的机器,完成单个机器无法完成的存储、计算任务
1.3 HDFS是什么
Hadoop分布式文件系统
1.4 为什么使用HDFS
高可用、容错、可扩展
2.核心概念block
2.1 数据块block
2.1.1 HDFS block块
HDFS3.x上的文件,是按照128M为单位,切分成一个个block,分散存储在集群的不同数据节点datanode上
问:HDFS中一个44M大小的块会不会占据128M的空间?不会
2.2 block副本 保正数据的可用及容错
replication = 3
dfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
实际机房中,会有机架,每个机架上若干服务器
3.机架存储策略
4. HDFS体系架构
HDFS是主从架构Master/Slave、管理节点/工作节点
4.1 NameNode
fs文件系统,用来存储、读取数据
NameNode主要用来干嘛的?
1. 管理节点,负责管理文件系统和命名空间,存放了HDFS的元数据;
2. 元数据信息包括文件系统树、整棵树所有的文件和目录、每个文件的块列表、块所在的datanode等;
3. 元数据信息以命名空间镜像文件fsimage和编辑日志(edits log)的方式保存
Fsimage:元数据镜像文件 ,保存了文件系统目录树信息以及文件和块的对应关系
edits log:日志文件 ,保存文件系统的更改记录
4.2 DataNode
存储block,以及block元数据包括数据块的长度、块数据的校验和、时间戳
4.3 SeconddaryNameNode
它一般部署在另外一台节点上,因为它需要占用大量的CPU时间,并需要与namenode一样多的内存,来执行合并
操作
5.HDFS心跳机制
工作原理:
1. master启动的时候,会开一个ipc server在那里。
2. slave启动,连接master,每隔3秒钟向master发送一个“心跳”,携带状态信息;
3. master通过这个心跳的返回值,向slave节点传达指令
作用:
1. Namenode全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告
(Blockreport)。接收到心跳信号意味着该Datanode节点工作正常。块状态报告包含了一个该 Datanode上所
有数据块的列表
2. DataNode启动后向NameNode注册,通过后,周期性(1小时)的向 NameNode上报所有的块的列表;
每3秒向NamNode发一次心跳,返回NameNode给该DataNode的命令;如复制块数据到另一台机器,或删
除某个数据块。如果NameNode超过10分钟没有收 到某个DataNode 的心跳,则认为该节点不可用。
3. hadoop集群刚开始启动时,会进入安全模式(99.9%),就用到了心跳机制
6.HDFS写流程介绍
这里描述的 是一个256M的文件上传过程
① 由客户端 向 NameNode节点 发出请求
②NameNode 向Client返回可以存数据的 DataNode 这里遵循 机架感应 原则
③客户端 首先 根据返回的信息 先将 文件分块(Hadoop2.X版本 每一个block为 128M 而之前的版本为 64M)
④然后通过nameNode返回的DataNode信息 直接发送给DataNode 并且是 流式写入 同时 会复制到其他两台机器
⑤dataNode 向 Client通信 表示已经传完 数据块 同时向NameNode报告
⑥依照上面(④到⑤)的原理将 所有的数据块都上传结束 向 NameNode 报告 表明 已经传完所有的数据块
这样 整个HDFS上传流程就 走完了
7.HDFS读流程介绍
1、client跟namenode通信查询元数据,找到文件块所在的datanode服务器
2、随机挑选一台datanode(就近原则,然后随机)服务器,请求建立socket流
3、datanode开始发送数据(从磁盘里面读取数据放入流,以packet为单位来做校验)
4、客户端以packet为单位接收,先在本地缓存,然后写入目标文件
HDFS分布式文件存储系统相关推荐
- HDFS分布式文件存储系统详解
HDFS简介 一.HDFS:Hadoop Distributed File System 1. 一个分布式文件系统 2. 基于流数据模式访问和处理超大文件的需求而开发的 ...
- day36~37_HDFS分布式文件存储系统
HDFS分布式文件存储系统 一.HDFS概述 (一)HDFS产生背景 随着数据量越来越大,在一个文件系统下无法存储海量数据,普通硬件支持的操作系统即使扩展磁盘也会遇到瓶颈,迫切需要水平横向扩展来解决数 ...
- 一图看懂hadoop分布式文件存储系统HDFS工作原理
一图看懂hadoop分布式文件存储系统HDFS工作原理 转载于:https://www.cnblogs.com/AlexQY/p/9856477.html
- hdfs读写流程_必须掌握的分布式文件存储系统—HDFS
必须掌握的分布式文件存储系统-HDFSmp.weixin.qq.com HDFS(Hadoop Distributed File System)分布式文件存储系统,主要为各类分布式计算框架如Spar ...
- HDFS—Hadoop底层分布式文件存储系统
声明:本文档所有内容均在本人的学习和理解上整理,仅供参考,欢迎讨论.不具有权威性,甚至不具有精确性,也会在以后的学习中对不合理之处进行修改. 在上一篇"浅谈Hadoop inFusionIn ...
- 分布式文件存储系统调研
分布式文件存储系统调研 主流分布式文件存储系统 分布式文件系统 适合类型 文件分布 系统性能 复杂度 备份机制 接口类型 开发语言 使用 FastDFS 4KB~500MB 小文件合并存储,不分片处理 ...
- 分布式文件存储系统技术及实现
本课程针对分步式文件存储系统的实现进行讲解,首先分析为什么要使用这种分步式存储系统,以及这种系统在设计时需要注意的问题,并比较现在市面常见的分步式存储系统(HDFS.Ceph等),展示阿里Pangu系 ...
- 盘点分布式文件存储系统____分布式文件存储系统简介
盘点分布式文件存储系统 在项目的数据存储中,结构化数据通常采用关系型数据库,非结构化数据(文件)的存储就有很多种方式,服务器本地存储.Nas挂载.ftp等等,今天就来盘点一下,分布式文件存储系统. 一 ...
- 分布式文件存储系统的优点和缺点
分布式文件存储系统 分布式:在hdfs中由多个服务器组成,每个服务器扮演着不同的角色 HDFS适用于一次写入多次读出,不支持文件修改 优点 1高容错性 一台宕机没有什么问题,不会造成一个数据整体丢失. ...
最新文章
- 程序员又背锅?美团外卖声明“杀熟会员”是技术原因,软件定位缓存导致配送费不准!网友:程序员太惨!...
- Python使用matplotlib可视化多分类变量组合下分组小提琴图、使用seaborn中的catplot函数可视化多分类变量组合下分组小提琴图(Categorical Plots)
- Cocos2d-x 3.0 rc0中加入附加项目,解决无法打开包括文件:“extensions/ExtensionMacros.h”...
- NYOJ 453 小珂的烦恼 模拟
- OO实现ALV TABLE 一:最简单的ALV显示
- 整数中1出现的次数(从1到n整数中1出现的次数)
- frida hook so层、protobuf 数据解析
- 汇编语言:编写代码实现字符串的复制
- iOS 蓝牙使用小结 bluetooth
- 数据结构与算法的实现 —— 结点定义与数据结构的选择
- [No0000CE]检测非空格字符作为密码的密码强度
- 大话数据结构 mobi epub txt pdk
- 深入浅出hibernate_夏昕_hibernate别名完成ResultSet和实体的映射
- 黑苹果hidp显示不清楚_bigsur 黑苹果开启HIDPI失败解决方法
- 详解C语言中的使用(取地址符)
- flash html游戏开发,flash游戏制作|Flash AS3.0教你射击类游戏的制作_好特教程
- 一位微信小程序萌新的学渣笔记(三)基础语法之常见组件
- DBFS CLI : 02-文件操作相关常用命令
- 有效沟通bic法则_猎头支招:工作中有效沟通的法则
- 雷蛇键盘灯光配置文件_雷蛇这款光轴机械键盘开箱评测,光速触发,颜值爆表...
热门文章
- 阿里云服务器 安装SVN
- Linux中查看系统版本(内核和发行)、CPU信息以及修改主机名
- 归并算法Python3.7实现及时间复杂度分析
- x86汇编语言从实模式百度云_x86汇编语言:从实模式到保护模式
- html5怎么让图片在导航栏后,请问前端大神,html如何引入另一个html,写了一个导航栏想在多个页面中如何重复使用?...
- 9 种开源的服务网格比较
- 解决Microsoft SQL Server 2005 安装失败方法
- 【图像笔记】深度图像和深度相机
- 骑砍自建服务器,骑砍服务器开服与维护完全教程
- 第十届蓝桥杯大赛青少年创意编程C++组省赛 水下探测器+小猫吃鱼