大数据干货系列(二)--HDFS1.0



本质

HDFS(Hadoop Distributed File System)是一种适合运行在通用硬件上的分布式文件系统

 

、HDFS解决了什么问题

1.海量数据存储和吞吐

2.write-once-read-many存取模式无数据一致性问题

3.高度容错

4.处理非结构化数据

 

系统架构

1. NameNode

  1) 作用

• 管理着文件系统命名空间

• 在内存中存储元数据

文件名目录名及它们之间的层级关系

文件目录的所有者及其权限

每个文件块的名及文件有哪些块组成

• 保存文件,block,datanode之间的映射关系

  2) 单点问题

• Hadoop系统只有一个NameNode

  3) 两种解决方案

• hadoop元数据写入到本地文件系统的同时,再实时同步到一个远程挂载的网络文件系统

• 运行一个secondaryNameNode

2. SecondaryNameNode

  1) 作用

• 元信息持久化到磁盘

存放元信息的文件是 fsimage

存放对元信息的操作的文件是edits

• 定时到NameNode去获取edit logs,并更新到fsimage[Secondary NameNode自己的fsimage]

• 一旦它有了新的fsimage文件它将其拷贝回NameNode

• NameNode在下次重启时会使用这个新的fsimage文件从而减少重启的时间

        

3. DataNode

  1) 作用

• 负责存储数据块负责为系统客户端提供数据块的读写服务

• 根据NameNode的指示进行创建删除和复制等操作

• 心跳机制定期报告文件块列表信息

• DataNode之间进行通信块的副本处理

  2) block

• HDFS读写的基本单位

• HDFS默认数据块大小64MB,一般磁盘块是512B

• 块增大可以减少寻址时间降低寻址时间/文件传输时间

• 块过大会导致整体任务数量过小降低作业处理速度

 

三个策略

1.机架感知策略 (Block副本的放置策略)


• 第一个副本在客户端相同的节点如果客户端是集群外的一台机器就随机算节

但是系统会避免挑选太满或者太忙的节点

• 第二个副本放在不同机架随机选择的节点

• 第三个副本放在与第二个副本同机架但是不同节点上


2.数据完整性校验

  1) 校验和

检测损坏数据的常用方法是在第一次进行系统时计算数据的校验和在通道传输过程中如果新生成的校验和不完全匹配原始的校验和那么数据就会被认为是被损坏的

  2) 数据块检测程序DataBlockScanner

DataNode节点上开启一个后台线程来定期验证存储在它上所有块这个是防止物理介质出现损减情况而造成的数据损坏

3.容错-可靠性措施

  1) 故障检测

- DataNode

• 心跳包检测是否宕机

• 快报告安全模式下检测

• 数据完整性检测校验和比较

- NameNode

• 日志文件

• 镜像文件

  2) 空间回收机制

- Trash目录

 

、HDFSMapReduce


、HDFS的局限

1.存储小文件不建议

2.大量随机读不建议

3.需要对文件修改不支持

4.多用户写入不支持

 

以上.


如果觉得本文对你有帮助,可以帮忙点个赞表示支持吗,谢谢!

如果有任何意见和建议,也欢迎再下方留言~





 

关注这个公众号,每天22:00会有三道大数据面试题准时推送给你哦~


点击这里查看往期精彩内容:

每天三道题

大数据干货系列(一)--MapReduce总结

如何开启数据科学生涯?这里有你想要的 45 种方式

本质

HDFS(Hadoop Distributed File System)是一种适合运行在通用硬件上的分布式文件系统

 

、HDFS解决了什么问题

1.海量数据存储和吞吐

2.write-once-read-many存取模式无数据一致性问题

3.高度容错

4.处理非结构化数据

 

系统架构

1. NameNode

  1) 作用

• 管理着文件系统命名空间

• 在内存中存储元数据

文件名目录名及它们之间的层级关系

文件目录的所有者及其权限

每个文件块的名及文件有哪些块组成

• 保存文件,block,datanode之间的映射关系

  2) 单点问题

• Hadoop系统只有一个NameNode

  3) 两种解决方案

• hadoop元数据写入到本地文件系统的同时,再实时同步到一个远程挂载的网络文件系统

• 运行一个secondaryNameNode

2. SecondaryNameNode

  1) 作用

• 元信息持久化到磁盘

存放元信息的文件是 fsimage

存放对元信息的操作的文件是edits

• 定时到NameNode去获取edit logs,并更新到fsimage[Secondary NameNode自己的fsimage]

• 一旦它有了新的fsimage文件它将其拷贝回NameNode

• NameNode在下次重启时会使用这个新的fsimage文件从而减少重启的时间

        

3. DataNode

  1) 作用

• 负责存储数据块负责为系统客户端提供数据块的读写服务

• 根据NameNode的指示进行创建删除和复制等操作

• 心跳机制定期报告文件块列表信息

• DataNode之间进行通信块的副本处理

  2) block

• HDFS读写的基本单位

• HDFS默认数据块大小64MB,一般磁盘块是512B

• 块增大可以减少寻址时间降低寻址时间/文件传输时间

• 块过大会导致整体任务数量过小降低作业处理速度

 

三个策略

1.机架感知策略 (Block副本的放置策略)


• 第一个副本在客户端相同的节点如果客户端是集群外的一台机器就随机算节

但是系统会避免挑选太满或者太忙的节点

• 第二个副本放在不同机架随机选择的节点

• 第三个副本放在与第二个副本同机架但是不同节点上


2.数据完整性校验

  1) 校验和

检测损坏数据的常用方法是在第一次进行系统时计算数据的校验和在通道传输过程中如果新生成的校验和不完全匹配原始的校验和那么数据就会被认为是被损坏的

  2) 数据块检测程序DataBlockScanner

DataNode节点上开启一个后台线程来定期验证存储在它上所有块这个是防止物理介质出现损减情况而造成的数据损坏

3.容错-可靠性措施

  1) 故障检测

- DataNode

• 心跳包检测是否宕机

• 快报告安全模式下检测

• 数据完整性检测校验和比较

- NameNode

• 日志文件

• 镜像文件

  2) 空间回收机制

- Trash目录

 

、HDFSMapReduce


、HDFS的局限

1.存储小文件不建议

2.大量随机读不建议

3.需要对文件修改不支持

4.多用户写入不支持

 

以上.


如果觉得本文对你有帮助,可以帮忙点个赞表示支持吗,谢谢!

如果有任何意见和建议,也欢迎再下方留言~





 

关注这个公众号,每天22:00会有三道大数据面试题准时推送给你哦~


点击这里查看往期精彩内容:

每天三道题

大数据干货系列(一)--MapReduce总结

如何开启数据科学生涯?这里有你想要的 45 种方式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值