面试系列:深入理解Hadoop架构体系
2023-03-07 09:52:48 时间
Hadoop组件简介
官方文档组织的非常清晰,主要由以下四个组件组成:HDFS、map-reduce、yarn、hadoop-common
hdfs架构
HDFS
分布式文件存储系统,主要特点是:
- 可以运行在普通低成本硬件之上
- 并且具备高容错性(硬件容错)
- 适合高吞吐量的大数据存储,但并不强调低延迟
- 适合一次写,多次读的场景,不支持随机读写;
map-reduce
map-reduce是一个计算框架,绝大部分的数据处理都可以转化为map、reduce组合,然后利用map-reduce框架进行计算、处理;
yarn
资源管理器,核心的思想时将资源的调度管理与资源监控分割为两个进程,其中一个是ResourceManager,另一个是NodeManager,前者负责资源的分配、后者负责资源监控;
common
hdfs、map-reduce所需要的公共库;
面试题
- HDFS的进程构成及其作用;
- nameNode进程:负责对外展示文件的层级结构、管理客户端对文件的访问(如:打开、关闭、重命名等)、决定文件block与dataNode的对应关系;
- secondNameNode进程:从名字来看,应该是nameNode的back up,然而并不是,其主要作用是协助nameNode管理editLog;
- dataNode:主要负责数据存储以及客户端的读写请求以及block的创建、删除等;
详细解释map过程的细节:
- map过程主要是实现key-value集合到key-value集合的映射,可以实一对一、一对多、多对多映射;
- 详细过程是:map -> group -> sorted -> partitioned
- group:相同的key放到一起;
- sorted:按照key进行排序
- partition:对key进行分区,最终分区数量一般等于task数量;
详细解释reduce过程细节:
- 首先是shuffle,即从map端拉取数据到reducer端;
- 之后是group,也就是相同的key可能来自于不同的map,所以需要group
- 之后是sort过程(再map阶段排序的基础之上,进行归并排序即可)
- 最后是second sort(用户自定义,如果没有自定义则不执行)
- 最后是reduce过程。
setCombinerClass的作用:
- 在map端先进行一部分reduce工作,主要优点是减少shuffle成本;但也有一定的局限性,仅仅适用于reduce的输入和输出数据类型相同时;
简单介绍Federation架构:
- Federation架构通过多个独立的NameNode实现集群的横向扩展,主要解决了HDFS的吞吐量及承载量受限于单个nameNode,并且无法根据namespace做隔离的弊端。
在存储层,各个nameNode共用统一的DataNode
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的