HDFS主要组件(数据块、NameNode、DataNode、secondaryNameNode)

HDFS主要组件

1、数据块(Block)

        HDFS中的文件是以数据块的形式存储的,默认最基本的存储单位是128MB的数据块,也就是说,存储在HDFS中的文件都会被分割成128MB一块的数据进行存储,如果文件本身小于128MB,则按照实际大小进行存储,并不占用整个数据库空间。

        HDFS的数据块之所以会设置这么大,其目的是减少寻址开销。数据块数量越多,寻址数据块所耗费的时间越多。当然也不会设置过大。

        HDFS的每一个数据块默认都有3个副本,分布存储在不同的DataNode中,以实现容错,所有如果某个数据块丢失并不影响数据块的访问。数据块的大小和副本数量可在配置文件中更改。

2、NameNode

        NameNode是HDFS中存储元数据(元数据就是文件名称,大小和在电脑中的位置)的地方,它将所有文件和文件夹的元素据保存在一个文件系统目录树中,任何元数据的改变,NameNode都会记录。HDFS中的每个文件都会拆分为多个数据块存放,这种文件与数据块的对应关系也存储在文件系统目录树中,由NameNode维护。

        NameNode还存储数据块到DataNode的映射信息,这种映射信息包括:数据块存放在哪个DataNode中、每个DataNode保存了哪些数据块。

        NameNode会监听DataNode的“心跳”和“块报告”,通过心跳和NameNode保持通讯。

3、DataNode

        DataNode才是HDFS中真正存储数据的地方。客户端可以向DataNode请求写入或读取数据块,DataNode还在来自NameNode的指令下执行块的创建、删除和复制,并且周期性的向NameNode汇报数据块的信息。

4、SecondaryNameNode

        SecondaryNameNode其实是一个辅助工具,它用于帮助NameNode管理元数据,从而使NameNode能够快速、高效的工作,所有它并不是第二个NameNode。

        现在大三,双非二本院校 大数据专业,个人原因不打算考研,准备主攻Hadoop生态系统机器学习等大数据算法。购买了一本张伟洋老师的hadoop大数据技术开发实战,希望通过写博客记录我每天的学习成果。感兴趣的小伙伴可以一起学习,一起进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值