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大数据技术开发实战,希望通过写博客记录我每天的学习成果。感兴趣的小伙伴可以一起学习,一起进步!

技术
©2019-2020 Toolsou All rights reserved,
大一上c语言学生管理系统(下)年底了,不要跳槽。字节跳动测试工程师凉经分享教你用Python画一棵圣诞树用C实现圣诞树python 使用turtle 画樱花(python3验证ok)win10系统的计算机C盘在哪,c盘users在哪(win10c盘找不到users)计算机发展史上最著名的两位鼻祖HDFS主要组件(数据块、NameNode、DataNode、secondaryNameNode)python 指定时间运行代码