既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
什么是HDFS?
- HDFS(Hadoop Distribution File System)是基于谷歌发布的GFS论文设计的;
- 出了具有其他文件系统具有的特性之后,HDFS还具有:
- 高容错性:认为硬件总是不可靠的;
- 高吞吐量:为大量数据访问的应用提供高吞吐量的支持;
- 大文件存储:支持存储TB或PB级的数据。
HDFS作为Hadoop的基础存储设施,实现一个高容错,分布式,可线性扩展的文件系统
HDFS基础系统架构
hdfs架构包含三个部分:
- NameNode:
用于存储、生成文件系统的元数据。运行一个实例。 - DataNode:
用于存储实际数据,将自己管理的数据块报送给NameNode,运行多个实例。 - Client:
支持业务访问HDFS从NameNode,DataNode获取的数据返回给业务。多个实例和业务一起运行。
HDFS写入数据流程
1.hdfs client向distribute file system发起create请求
2.NNcreate
3.hdfs client向FSdata output stream发起write指令
4.FSdata output stream 向DN写入数据
5.DN向FSdata output stream 返回一个校验包的指令:ack packet
6.写完之后关闭数据写入进程
7.NN收到写入完成的命令:complete
HDFS读数据流程
1.hdfs client向distribut system发起读的请求:open
2.distribute system向NN获取块的位置信息:get block location
3.向输出流系统(FSData outputsystem)发起读的指令:read
4.输出流系统(FSdata outputsystem)向数据节点DN发起读指令:read
5.输出流系统(FSdata outputsystem)向数据节点DN发起读指令:read
6.最后关闭读数据的进程
HDFS关键特性
- HA高可靠:
Zookeeper:分布式协调。主要用于存储HA状态文件,主备信息。zookeeper集群至少3个节点及以上且为基数。
NameNode:主备模式。主提供服务,备合并元数据和作为主的热备
ZKFC(zookeeper failvor controller):用于控制NameNode节点的主备状态
JN(journalnode):用于共享存储NameNode产生的editlog
- 数据副本机制
副本距离计算公式:
同一台服务器距离为0
distance(rack1/d1,rack1/d1)=0
同一机架,不同服务器距离为2
distance(rack1/d1,rack1/d3)=2
不同机架的服务器距离为4
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
b5e56a57acb)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!