前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >了解HDFS的数据存取机制

了解HDFS的数据存取机制

作者头像
希望的田野
发布2019-09-24 16:28:03
1.1K0
发布2019-09-24 16:28:03
举报
文章被收录于专栏:信息化漫谈信息化漫谈

HDFS是大数据存取的基础,很多数据都依赖于HDFS,如HBase数据库。作为Hadoop的基础,HDFS的数据读取机制有很多细节。我们今天来看一下。

一、HDFS的数据存取以机架为单位

HDFS采用以机架(Rack)为基础建议的数据存放单位。

HDFS会将同一个数据源的数据拆分后,放到不同的机架数据节点上。这样做有好处、坏处。坏处是:不能充分利用同一个机架上的内网带宽。但好处也很明显,读取数据时,可以在多个机架并行读取数据,容易实现内部负载均衡。

HDFS默认的冗余复制因子是3,数据默认保存3份。但这些3份数据有2份是在同一个机架的不同机器上面,第3个副本放在了不同机架上面。

二、HDFS的数据读取

客户端需要访问HDFS中存放的数据时,不能像取本地磁盘文件这样直接,需要通过HDFS API。客户端通过API从NameNode获取到数据的存放位置,该存放位置是三份不同副本的位置列表。API会优先选择与客户端位置机架ID相同的副本进行数据读取,否则就随机选择一个副本读取数据。

三、 HDFS的数据复制有云计算的理念存在

HDFS的数据复制采用了流水线复制的策略,大大提高了数据复制过程的效率。当客户端需要向HDFS中写入一个文件时,这个文件会首先被写入本地,并按HDFS设置切块(默认为128MB一块)。每个块都向HDFS的NameNode节点发起写请求,客户端把数据写入第一个DataNode节点,第一个节点写成功向再写入第二个节点,依次类推。形成了流水线作业,避免客户端同时向三个节点写数据,造成的数据延迟及客户端压力的增加。

四、HDFS有不适合干的活

1、低延迟的数据访问不合适

如ms秒级的应用,不适合用HDFS。HDFS每访问都需要经过NameNode查询数据的所在,增加了访问时间。

2、小文件不适合

文件的元数据(目录结构)全部存在NameNode内存中,如文件太小,文件数据量过多,则造成NameNode的内存空间难以支持。

五、HDFS最合适的场景

1、冷数据的访问

HDFS利用x86的低廉价格进行数据存取,一般用于放非实时数据。

2、大文件非常合适

HDFS的Block默认为128MB。如果一个文件大小为1MB,则在HDFS只会占用1MB。如果一个大文件,如1GB的文本文件,会被拆分成8份,放到不同的数据节点中,取数据是8份数据同时取。同时在利用mapreduce计算时,也是8份数据同时计算。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信息化漫谈 微信公众号,前往查看

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

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

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