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数据存储集群采用主从模式架构(中心化模式架构)

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做元数据记录工作。

关键信息:

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等是这种模式)

相关推荐
viperrrrrrrrrr730 分钟前
大数据学习(40)- Flink执行流
大数据·学习·flink
Ase5gqe10 小时前
大数据-259 离线数仓 - Griffin架构 修改配置 pom.xml sparkProperties 编译启动
xml·大数据·架构
史嘉庆10 小时前
Pandas 数据分析(二)【股票数据】
大数据·数据分析·pandas
唯余木叶下弦声11 小时前
PySpark之金融数据分析(Spark RDD、SQL练习题)
大数据·python·sql·数据分析·spark·pyspark
重生之Java再爱我一次11 小时前
Hadoop集群搭建
大数据·hadoop·分布式
中东大鹅12 小时前
MongoDB的索引与聚合
数据库·hadoop·分布式·mongodb
豪越大豪13 小时前
2024年智慧消防一体化安全管控年度回顾与2025年预测
大数据·科技·运维开发
互联网资讯13 小时前
详解共享WiFi小程序怎么弄!
大数据·运维·网络·人工智能·小程序·生活
AI2AGI15 小时前
天天AI-20250121:全面解读 AI 实践课程:动手学大模型(含PDF课件)
大数据·人工智能·百度·ai·文心一言
雪芽蓝域zzs15 小时前
JavaWeb开发(十五)实战-生鲜后台管理系统(二)注册、登录、记住密码
数据仓库·hive·hadoop