既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
我们通常说到的hadoop包括两个部分,一是Hadoop核心技术(或者说狭义上的hadoop),对应为apache开源社区的一个项目,主要包括三部分内容:hdfs,mapreduce,yarn。其中hdfs用来储存海量数据,mapreduce用来对海量数据进行计算,yarn是一个通用的资源调度框架(是在hadoop2.0中产生的)。
另一部分指广义的,广义上指一个生态圈,泛指大数据技术相关的开源组件或产品,如hbase、hive、spack、pig、zookeeper、kafka、flume、phoenix、sqoop等。
生态圈中的这些组件或产品相互之间会有依赖,但又各自独立。比如habse和kafka会依赖zookeeper,hive会依赖mapreduce。
-
Hadoop hdfs架构:
-
HDFS产生背景:
随着数据量的越来越大,在一个操作系统存不下赛哦有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS是分布式文件管理系统中的一种。
- HDFS的定义:
HDFS(Hadoop Distributed File Systemctl)是一个文件系统,用于储存文件,通过目录树来定位为文件。它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
- HDFS优缺点:
优点:1.高容错性
-
数据自动保存多个副本。通过增加副本的形式提高容错性。
-
某一个副本丢失后,可以自动恢复。
-
适合处理大数据。
-
数据规模:能够处理数据规模达到GB、TB、甚至PB级别的数据。
-
文件规模:能够处理百万规模以上的文件数量,数量相当之大。
-
可构建在廉价机器上,通过多副本机制,提高可靠性。
缺点:1.不适合低延迟时数据访问,比如我无法处理毫秒级的储存数据。
-
无法高效的对大量小文件进行存储。
-
储存大量小文件会占用NameNode大量的内存来储存文件目录和快信息,而NameNode的内存是有限的。
-
小文件存储的寻址时间会超过读取时间,违反HDFS的设计目标。
-
不支持并发写入、文件会随即修改
-
一个文件只能有一个写,不允许多个线程同时写
-
仅支持数据追加(append),不支持文件的随即修改
-
HDFS组成构架
-
Namenode(nn)就是master,是一个主管者、管理者。
-
管理HDFS的名称空间
-
配置副本策略
-
管理数据块(block)映射信息
-
Datanode就是slave。Nameenode下达命令,datanode执行实际的操作
-
存储实际的数据块
-
执行数据块的读/写操作
-
Client就是客户端。客户端是一个抽象的概念,无论是命令行还是通过API还是web界面来操作都是客户端。
-
文件切分。文件上传HDFS的时候,client将文件切分成一个个Block,然后进行上传
-
与NameNode交互,获取文件的位置信息
-
与DataNode交互,获取或写入数据
-
Client提供一些命令来管理HDFS,比如NameNode格式化
-
Client可以通过一些命令来访问HDFS ,比如对HDFS增删改查操作
-
Secondary NameNode并非NameNode的热备。当NameNode挂掉的时候,并不能马上替换NameNode并提供服务
-
辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**