HDFS【概述、数据流】
概述
定义
HDFS是一个分布式文件管理系统
优缺点
优点
(1)高容错
多副本提高容错、某个副本丢失可以自动恢复
(2)适合处理大数据
能处理PB级别数据、能处理百万的文件数据量
(3)可构建在廉价机器上
缺点
(1)不适合低时延数据访问
(2)无法高效存储小文件
(3)不支持并发写入和文件修改
HDFS组成架构
HDFS文件块大小
HDFS数据流
写数据
1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。
2)NameNode返回是否可以上传。
3)客户端请求第一个 Block上传到哪几个DataNode服务器上。
4)NameNode返回3个DataNode节点,分别为dn1、dn2、dn3。
5)客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。
6)dn1、dn2、dn3逐级应答客户端。
7)客户端开始往dn1上传第一个Block(先从磁盘读取数据放到一个本地内存缓存),以Packet为单位,dn1收到一个Packet就会传给dn2,dn2传给dn3;dn1每传一个packet会放入一个应答队列等待应答。
8)当一个Block传输完成之后,客户端再次请求NameNode上传第二个Block的服务器。(重复执行3-7步)。
读数据
1)客户端通过Distributed FileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。
2)挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。
3)DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。
4)客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。
网络拓扑-节点距离计算
节点距离:两个节点到达最近的共同祖先的距离总和
在HDFS写数据的过程中,NameNode会选择距离待上传数据最近距离的DataNode接收数据。那么这个最近距离怎么计算呢?
机架感知(写数据的副本存储节点选择)
官网介绍(2.X和3.X策略不同)
http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Data_Replication
http://hadoop.apache.org/docs/r3.1.3/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Data_Replication
- hadoop2.7.2版本(2-1)
- hadoop3.1.3版本(1-2)
最新文章
- deiban8 sourcelist
- linux权限补充:rwt rwT rws rwS 特殊权限
- linux配置网卡
- Mybatis 学习笔记1
- wpf,记录一下颜色设置的2中方法,,,
- weed-fs 基础测试
- [转]如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
- Mac窗口管理管理软件SizeUp
- [Laravel] 获取执行的Sql
- Executor框架
- 库函数atoi()的实现
- JavaScript中的execCommand()命令详解及实例展示
- hdu_5950_Recursive sequence(矩阵快速幂)
- 自动化测试:behave
- Java设计模式-单例模式详解(上)
- 机器学习---线性回归(Machine Learning Linear Regression)
- MyEclipse使用总结——设置MyEclipse开发项目时使用的JDK
- 【建模应用】PCA主成分分析原理详解
- 手把手教你实现自己的abp代码生成器
- pgm7
热门文章
- Pytorch中stack()方法的理解
- linux堡垒机下定位日志文件内容
- JDK 之 HttpClient(jdk11)
- PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilder,阿里MAVEN仓库地址更新为了https问题
- MySQL统计总数就用count(*),别花里胡哨的《死磕MySQL系列 十》
- 要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放
- Linux——搭建Samba(CIFS)服务器
- 记一次 IIS 站点配置文件备份和还原,物理路径文件批量备份
- [luogu5577]算力训练
- [loj3343]超现实树