2024-01-30(Hadoop_HDFS)

1.什么是大数据

狭义(技术思维):使用分布式技术完成海量数据的处理,得到数据背后蕴含的价值。

广义:大数据是数字化时代,信息化时代的基础(技术)支撑,以数据为生活赋能。

大数据的核心工作:从海量的高增长、多类别、低信息密度的数据中挖掘出高质量的结果。(海量数据存储、海量数据传输、海量数据计算)

2.大数据的核心工作

存储:妥善保存海量待处理数据

计算:完成海量数据的价值挖掘

传输:协助各个环节的数据传输

3.大数据的生态

存储:Apache Hadoop HDFS、Apache HBase、Apache Kudu、云平台

计算:Apache Hadoop MapReduce、Apache Spark、Apache Flink

传输:Apache Kafka、Apache Pulsar、Apache Flume、Apache Sqoop

4.海量数据的分布式存储

数据量太大,单机存储能力有上限,需要靠服务器数量来解决问题

数量的提升带来的是网络传输、磁盘读写、CPU、内存等各方面的综合提升。分布式存储的组合可以达到1+1>2的效果。

5.Hadoop是由三大组件组成的:

HDFS组件(分布式存储),MapReduce组件(分布式计算),YARN组件(分布式调度)。

6.HDFS是Hadoop技术栈提供的f分布式数据存储解决方案,可以在多台服务器上构建存储集群,存储海量的数据。HDFS数据存储集群采用主从模式架构(中心化模式架构)

2024-01-30(Hadoop_HDFS)_第1张图片

NameNode:主角色,负责管理HDFS集群和DataNode角色

DataNode角色:从角色,负责数据的存储

SecondaryNameNode:辅助角色,负责协助NameNode整理元数据

7.HDFS和Linux系统一样,均是以/作为根目录的组织形式。

8.HDFS和Linux系统中的命令也很类似。

9.HDFS文件系统中的文件只能删除和追加,不能修改。

10.什么是NFS:

NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。(通俗的说NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利。)

11.HDFS分布式文件存储原理:

每个服务器(节点)存储文件的一部分。

12.block块:设定的HDFS服务器统一的管理单位,每个256MB(支持修改:配置文件中修改)

13.解决block块丢失的问题:

在其他服务器上进行备份。这样某一台服务器的某个block丢失了,可以从其他服务器上复制备份过来。

14.fsck命令查看文件的信息,例如该文件的副本数量和副本路径。

15.NameNode是如何管理Block块的:

edits文件,是一个流水账文件,记录了hdfs中每一次操作,以及本次操作影响的文件其对应的block。

FSImage文件:就是全部的edits文件合并后的结果。(我只要edits文件的最终状态,中间的操作流水账我不关心)

so,NameNode元数据管理维护步骤

1.每次对HDFS的操作,均被edits记录

2.edits达到大小上限后,开启新的edits记录

3.定期进行edits的合并操作

        (1)如果当前没有fsimage文件,将全部edits合并为第一个fsimage

        (2)如果当前已经存在fsimage文件,将全部edits和已存在的fsimage进行合并,形成新的fsimage文件

4.重复1,2,3步骤

16.edits和fsimage文件中元数据的合并要么基于时间要么基于事务数,二者达到其一就触发合并操作。

17.SecondaryNameNode就是来做元数据的合并操作的,合并好了给NameNode操作。NameNode来写edits文件。

18.客户端在HDFS上写数据的流程:

1.客户端想NameNode发起请求

2.NameNode审核权限,剩余空间后,满足条件允许写入,并告知客户端写入的DataNode地址

3.客户端向指定的DataNode发送数据包

4.被写入数据的DataNode同时完成数据副本的复制工作

5.如下图,DataNode1复制给DataNode2,然后基于DataNode2复制给DataNode3和DataNode4

6.写入完成客户端通知NameNode,NameNode做元数据记录工作。

2024-01-30(Hadoop_HDFS)_第2张图片

关键信息:

a.NameNode不负责数据的写入,只负责元数据记录和权限审批

b.客户端直接向一台DataNode写数据。这个DataNode一般是离客户端最近(网络距离)的那个

c.数据块副本的复制工作,由DataNode之间自行完成(构建一个pipeline,按照顺序复制分发)

19.客户端在HDFS上读数据的流程:

1.客户端向NameNode申请读取某文件

2.NameNode判断客户端权限等细节后,允许读取,并返回此文件的block列表

3.客户端拿到block列表后自行寻找DataNode读取即可。

注意点:

1.数据同样不通过NameNode提供

2.NameNode提供的blockl列表,会基于网络距离计算尽量提供离客户端最近的。

20.为什么需要分布式计算:

因为数据量太大了,硬件性能不够,用数量来弥补。

21.分布式计算常见的两种工作模式:

分散->汇总(MapReduce就是这种模式)

中心调度->步骤执行(大数据体系的Spark,Flink等是这种模式)

你可能感兴趣的:(随记日志,hadoop,大数据,hdfs)