我是靠谱客的博主 风趣战斗机,最近开发中收集的这篇文章主要介绍Hadoop ( HDFS ) 之旅HDFS 概述HDFS 的 Shell 操作HDFS 的 API 操作HDFS 的读写流程NameNode 和 SecondaryNameNodeDataNode,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
Hadoop HDFS 概述
- HDFS 优缺点
- HDFS 架构
- HDFS 文件块
HDFS 产生背景 : 当数据量越来越大,一台机器无法满足,就要更多的机器,这时就需要个分布式文件管理系统来管理这些数据
HDFS(Hadoop Distributed File System):
- 分布式的管理 , 存储文件,通过目录树来定位文件
- 使用场景:一次写入,多次读出
HDFS 优缺点
HDFS优点 :
- 高容错性 : 数据自动保存多个副本 , 某个副本丢失后, 能自动副本
- 适合处理大数据 : 数据规模可达 PB , 百万文件量
- 可靠性 : 可构建在廉价机器上, 通过多副本机制, 提高可靠性
HDFS缺点 :
- 不适合低延时数据访问 : 毫秒级的存储数据 ( 无法实现 )
- 无法高效存储大量小文件 : 小文件过多, 会导致 NameNode 内存过大 , 寻址时间过长
- 不支持并发写入/文件随机修改 : 一个文件只能有一个写 , 仅支持追加数据
HDFS 架构
- NameNode (nn) : 管理 HDFS , 存储名称空间 , 副本策略 , Block映射 , 处理客户端读写请求
- Secondary NameNode:非热备。只定期合并 Fsimage 和 Edits, 并推送给 NN
- DataNode (dn):存储实际的数据块 , 执行数据块的读写操作
- Client (客户端) : 与NN/DN 交互 ,上传文件切分 , 命令管理 HDFS
HDFS 文件块
文件在 HDFS 是分块存储 (Block) :
- 块的大小 =
dfs.blocksize
- Hadoop2.x/3.x 的默认大小 : 128M
- 1.x 的默认大小 : 64M
Block 由来 :
- 当寻址时间约为 10ms,即查找到目标 block 的时间为 10ms
- 寻址时间 = 传输时间的 1% 时,为最佳状态。传输时间 =10ms / 0.01 = 1000ms = 1s
- 目前磁盘的传输速率普遍为 100MB/s
- block大小 = 1s * 100MB/s = 100MB
Block 设置建议 :
- HDFS 块的大小根据磁盘传输速率
- 机械硬盘 : 128M
- 固态硬盘 : 256M
Block 问题 :
- Block 太小, 会增加寻址时间
- Block 太大, 会增加磁盘传输数据时间
最后
以上就是风趣战斗机为你收集整理的Hadoop ( HDFS ) 之旅HDFS 概述HDFS 的 Shell 操作HDFS 的 API 操作HDFS 的读写流程NameNode 和 SecondaryNameNodeDataNode的全部内容,希望文章能够帮你解决Hadoop ( HDFS ) 之旅HDFS 概述HDFS 的 Shell 操作HDFS 的 API 操作HDFS 的读写流程NameNode 和 SecondaryNameNodeDataNode所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复