首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据干货系列(二)-HDFS1.0

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

作者头像
企鹅号小编
发布2018-02-08 17:18:54
7870
发布2018-02-08 17:18:54
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

本文共计876字,预计阅读时长五分钟

一、本质

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目录

五、HDFS和MapReduce

六、HDFS的局限

1.存储小文件(不建议)

2.大量随机读(不建议)

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

4.多用户写入(不支持)

以上.

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

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

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

本文来自企鹅号 - 每天学点java干货媒体

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

本文来自企鹅号 - 每天学点java干货媒体

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档