前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop之HDFS01【介绍】

Hadoop之HDFS01【介绍】

作者头像
用户4919348
发布2019-04-18 20:08:17
5260
发布2019-04-18 20:08:17
举报
文章被收录于专栏:波波烤鸭波波烤鸭波波烤鸭

&esmp; HDFS(Hadoop Distributed File System)分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。

存储模型

  假如我们有一个10T的文件要存储,而我们的硬盘空间只有1个T,那么这时候我们可以将这个10T的文件切成10个1T的文件来分别存储在10个硬盘中,HDFS的存储的原理其实也是这样的,将一个大文件进行线性切割成快(Block)然后存放在不同的服务器上,但很快你又会提出一个问题,如果一个字比如“存”在UTF-8当中占3个字节,而恰巧一个服务器存了1个字节而另外的2个字节存到了别的服务器上,这会出现我们使用的时候出现乱码,这个问题呢HDFS也帮我们解决了。后面会提到副本,相当于把文件克隆然后会进行一个修复操作。然后不同的文件分布到了不同的服务器上,所以是只允许写一次可以多次读取,那么HDFS存储模型的特点也就明显了。

在这里插入图片描述
在这里插入图片描述

序号

特点

1

文件线性切割成块(Block):偏移量 offset (byte)

2

Block分散存储在集群节点中

3

单一文件Block大小一致,文件与 文件可以不一致

4

Block可以设置副本数,副本分散在不同节点中 副本数不要超过节点数量(超过多余的副本会重复将浪费空间)

5

文件上传可以设置Block大小和副本数

6

已上传的文件Block副本数可以调整,大小不变

7

只支持一次写入多次读取,同一时刻只有一个写入者(避免修改后要变动后面所有节点的偏移量)

8

可以append追加数据

上传文件指定block大小和副本数量

hadoop fs -Ddfs.replication=2 -put a.txt /
在这里插入图片描述
在这里插入图片描述
hadoop fs -Ddfs.blocksize=67108864 -put fun1.sh  /
在这里插入图片描述
在这里插入图片描述

已上传的文件Block副本数可以调整,大小不变

[root@hadoop-node01 ~]# hadoop fs -setrep -w 3 /fun1.sh
Replication 3 set: /fun1.sh
Waiting for /fun1.sh .... done
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

append追加数据

hadoop fs -appendToFile b.txt /a.txt
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

架构模型

在这里插入图片描述
在这里插入图片描述
  1. 文件元数据MetaData,文件数据 元数据 数据本身
  2. (主)NameNode节点保存文件元数据:单节点 posix
  3. (从)DataNode节点保存文件Block数据:多节点
  4. DataNode与NameNode保持心跳,提交Block列表
  5. HdfsClient与NameNode交互元数据信息
  6. HdfsClient与DataNode交互文件Block数据

NameNode

  存储元数据(MetaData),不存储具体的block

序号

特点

1

基于内存存储,不和硬盘发生交互

2

持久化

NameNode主要功能:

序号

功能

1

接受客户端的读写服务

2

收集DataNode汇报的Block列表信息

3

NameNode保存metadata信息包括:文件owership和permissions,文件大小,时间(Block列表:Block偏移量),位置信息

NameNode持久化

  1. NameNode的metadate信息在启动后会加载到内存
  2. metadata存储到磁盘文件名为”fsimage”
  3. Block的位置信息不会保存到fsimage
  4. edits记录对metadata的操作日志。。。

DataNode

  本地磁盘目录存储数据(Block),文件形式,同时存储Block的元数据信息文件,启动DN时会向NN汇报block信息,通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN

在这里插入图片描述
在这里插入图片描述

HDFS优缺点

优先

  1. 高容错性 数据自动保存多个副本 副本丢失后,自动恢复
  2. 适合批处理 移动计算而非数据 数据位置暴露给计算框架(Block偏移量)
  3. 适合大数据处理 GB 、TB 、甚至PB 级数据 百万规模以上的文件数量 10K+ 节点
  4. 可构建在廉价机器上 通过多副本提高可靠性 提供了容错和恢复 机制

缺点

  1. 低延迟数据访问 比如毫秒级 低延迟与高吞吐率
  2. 小文件存取 占用NameNode 大量内存 寻道时间超过读取时间
  3. 并发写入、文件随机修改 一个文件只能有一个写者 仅支持append
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年04月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 存储模型
  • 架构模型
  • NameNode
  • DataNode
  • HDFS优缺点
    • 优先
      • 缺点
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档