没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
大数据面试题汇总大全
第一梯度(6):
Spark,Hive,Flink,数据仓库 Kimball 建模,Java(Web),
Linux
命令,
SpringMvc
,
SpringBoot
,
Mybatis
第二梯度(
5
):
Hadoop(yarn+mapreduce+hdfs),Kafka,Hbase,Azkaban
(了解),Datax(了解)
第三梯度(3):
Zookeeper
,机器学习,联邦学习
1.Hadoop
离线计算
Hadoop 体系是我们学习大数据框架的基石,Hadoop 由三个模块组成:分
布式存储
HDFS
、分布式计算
MapReduce
、资源调度引擎
Yarn
。
MapReduce
、
HDFS
、
Yarn
三驾马车基本垫定了整个数据方向的发展道路。
1.1. HDFS
1.1.1. Hadoop 常用端口号
⚫ dfs.namenode.http-address:50070
⚫ SecondaryNameNode 辅助名称节点端口号:50090
⚫ dfs.datanode.address:50010
⚫ fs.defaultFS:8020 或者 9000
⚫ yarn.resourcemanager.webapp.address:8088
1.1.2. Hdfs 的架构以及组件功能
HDFS
的架构图如下所示:
HDFS 是一个 Master/Slave 架构。HDFS
集群一般
有一个 Namenode
节点和
多个 Datanode
节点
,集群中每一个物理节点即一个 Datanode。
在不考虑 NameNode 高可用时,还会有一个 SecondaryNameNode 来负责做
元数据的 checkpoint。在 NameNode 的高可用架构下,SecondaryNameNode 会
被替换成另一个 standby 状态的 NameNode,不在存在 SecondaryNameNode。
NameNode 在内存中保存着整个文件系统的名称空间(元数据)和文件数据
块的地址映射
,
HDFS 可存储的文件数受限于 NameNode 的内存大小
。
Datanode
提供文件数据块的存储服务。
Namenode
接收来自 client 操作 HDFS 的读写请求
维护文件系统的元数据信息
,
包含目录结构和文件与数据块之间的映射关系。
一个文件可以被分成多个数据块。
Namenode 记录着文件各个块所在的节点信息,但这个并不是永久保存的,
因为每次启动系统这些节点会有
DataNode
重建。
Datanode
DataNode
以数据块(
block
)的形式存储
HDFS
文件。
HDFS
文件被分成一
个或者多个数据块 block 存储在磁盘上,为保证数据安全,每个数据块都有
副本。默认为
3
个副本。
DataNode 响应 HDFS 客户端读写请求
DataNode 周期性向 NameNode 汇报心跳信息和数据块信息
SecondaryNameNode:
辅助
NameNode
做
checkpoint
操作。做
checkpoint
时,会合并
FsImage
和 EditLog 成新的 FsImage,也就帮助 namenode 合并元数据信息。
block 块
数据切分成了特定大小的数据块(默认是 128MB),分发到不同的存储节
点
HDFS 上一个大文件如果大于配置的 blocksize(默认是 128MB),会被分成多
个数据块(block)存储,这些数据块会分散存储在不同的 DataNode 上。
Replication(副本)
数据块在不同的存储节点之间,通过复制的方式来拷贝。副本是
HDFS
实现
高可用的核心实现。默认是 3。
EditLog(edits 文件)
在 HDFS Client 发起的创建、删除等操作其实是一个事务,NameNode 会使
用事务日志(EditLog)来记录文件系统元数据的每一个变化。
EditLog
持久化在
NameNode
的本地磁盘上。在
SecondaryNameNode
或
standby NameNode 做 checkpoint 时,会合并 FsImage 和 EditLog 成新的
FsImage。
FsImage
FsImage
是
NameNode
的元数据存储快照,持久化在
NameNode
的本地磁
盘上。
Client(客户端)
向 NN/DN 发起读写请求,也就是上传文件和下载文件。
1.1.3. NameNode 元数据信息,fsImage 文件和 edits 文件
元数据内容:
HDFS 元数据,按类型分为:
1、文件、目录属性信息,例如文件名,目录名等。(存在磁盘文件里
面)
2、文件块的存储信息,例如存储块信息,分块情况,副本个数等。(存
在内存里面)
3、记录 HDFS 的 Datanode 的信息,用于 DataNode 的管理。
HDFS 元数据,按形式分为:
1
内存元数据,存在内存里面。文件块位置信息只存储在内存中,是在
datanode 加入集群的时候,namenode 询问 datanode 得到的,并且
间断的更新。
2 文件元数据,存在磁盘上。包含 fsimage 镜像文件和 Edits 编辑日志文件。
fsimage 镜像文件
是元数据的一个持久化的检查点,包含
Hadoop
文件系统中的所有目录和
文件元数据信息,但不包含文件块位置的信息。fsimage 文件一般都很大(GB 级
别的很常见)。
Edits 编辑日志
存放的是 HDFS 文件系统的所有更改操作(文件创建,删除或修改)的日
志,更改操作首先会被记录到 edits 文件中。
fsimage
和
edits
文件都是经过序列化的,
fsimage
是
HDFS
文件系统存于
硬盘中的元数据检查点,里面记录了自最后一次检查点之前 HDFS 文件系统中
所有目录和文件的序列化信息;而 edits 保存了自最后一次检查点之后所有针对
HDFS
文件系统的操作,比如:增加文件、重命名文件、删除目录等等。
在
NameNode
启动时候,会先将
fsimage
中的文件系统元数据信息加载到
内存,然后根据 eidts 中的记录将内存中的元数据同步至最新状态;所以,这两
个文件一旦损坏或丢失,将导致整个 HDFS 文件系统不可用。
1.1.4. Namenode 合并元数据流程
元数据的合并流程
1、Secondarynamenode 检查当前集群状态是否触发 checkpoint
的合并条件
2、若未触发则继续运行,否则开始元数据合并。
3、Namenode 停止向日志文件 edits 写入数据,并生成一个新的 edits
文件用于存储在合并期间产生的操作。
4、Secondarynamenode 通过 Http GET 方式从 namenode 处下载
edits 文件和 fsimage 文件,并将 fsimage 文件载入内存。
5
、
Secondarynamenode
逐条执行
edits
文件的更新操作,使内存
中的 fsimage 文件保存最新的操作日志,更新结束后生成一个 fsimage.chkt
文件。
6
、
Namenode
从
Secondarynamenode
出复制
fsimage.chkt
文件。
此时 Namenode 中存在四个相关文件,分别是 edits、fsimage、edits.new、
剩余139页未读,继续阅读
资源评论
FlyWIHTSKY
- 粉丝: 58
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现串口发送接收数据 可配置端口,波特率等 发送可选择ASCII方式或HEX方式
- matlab基于BP神经网络手写字母识别(单一).zip代码9
- 基于matlab实现编写的串口调试工具,数据接收部分采用中断方式,保证了实时的数据显示
- 基于matlab实现39节点电力系统合闸角调控过程中的机组和负荷的灵敏度计算.rar
- HBase数据库性能调优
- 原生微信小程序源码 - -首字母排序选择
- 基于QT+C++开发的保卫萝卜塔防游戏+源码(毕业设计&课程设计&项目开发)
- newapp.apk
- 项目申报管理系统论文Java项目
- 8数码、α-β搜索的博弈树算法编写一字棋游戏、Fisher线性分类器、感知器算法、SVM 分类器、卷积神经网络 CNN 框架
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功