我是靠谱客的博主 风趣战斗机,最近开发中收集的这篇文章主要介绍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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部