Hadoop HDFS 学习(1)理论

Hadoop HDFS优点:
①高容错性:
数据自动保存多个副本
副本丢失后自动恢复
②适合批处理
移动计算而非数据
数据位置暴露给计算机框架
③适合大数据处理
GB、TP、甚至PB级数据
百万规模以上的文件数量
10K+节点
④可构建在廉价机器上
通过多副本提高可靠性
提供了容错和恢复机制

缺点
①低延迟数据访问
比如毫秒级
低延迟与高吞吐率
(eg:订单查询,需要在毫秒级的时间内查询出用户订单)
②小文件存取
占用namenode大量内存
寻到时间超过读取时间
(nameNode中存储的是元数据,元数据是保存在内存当中的会影响数据的读取。可以将小文件进行压缩,当成一个文件来存储)
③并发写入,文件随机修改
一个文件只能有一个写者
仅支持append
(不能修改文件内容)

HDFS数据存储单元(block)
①文件被切割成固定大小的数据块
默认数据块大小为64M,可修改
若文件不到64M,则单独存成一个block
(如果超过64,则按照文件大小切割成数个块进行存储)
②一个文件存储方式
按大小切割成数个block进行存储,存储在不同节点上
默认情况下每个block有三个副本
③block大小和副本数通过client端上传文件时设置,文件上传成功后副本数可以修改,block大小不可变更

HDFS设计思想:

这里写图片描述

NameNode
主要功能:接受客户端的读写服务
nameNode 保存metadata(元数据)信息,包括:
文件overship(文件拥有者)和permission(权限)
文件包含哪些块
Block保存在哪个datanode(由datanode启动时上报)保存在内存中
nameNode的metaData信息在启动后会加载到内存
metadata存储到磁盘的文件名为 fsimage
Block的位置信息不会保存到 fsimage
edits记录对metadata的操作日志

SecondaryNameNode(SNN)
它不是NN(nameNode)的备份,但也可以做备份。它的主要功能是帮助NN合并editsLog日志文件,减少NN的启动时间

SNN执行合并时间
根据配置文件设置时间间隔fs.checkpoint.period 默认3600秒
根据配置文件设置editsLog 大小 fs.checjpoint.size 规定edits文件最大默认值64MB

这里写图片描述

每隔3600秒进行一次合并,将edits文件和 fsimage文件传送给SSN进行合并,并产生一个新的 fsimage文件,然后将新文件传送给NN。同时会生成一个新的edits文件(因为在合并的同时用户也会进行操作)

DataNode(DN)
存储数据(Block)
启动DN线程时会向NN汇报Block信息
通过向NN发送心跳保持与其联系(3秒一次),如果NN10秒内没有收到DN的心跳,则认为其已经lost,并copy其他的block到其他DN

Block副本放置策略
第一个副本放置在上传文件的DN;如果是集群外提交,则随机挑选一条磁盘不太满,cpu不太忙的节点
第二个副本放置在与第一个副本不同的 机架节点上(机架可以配置)
第三个副本:与第二个副本相同的机架节点上
更多副本:随机节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值