| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 【最全的大数据面试系列】Hadoop面试题大全(一) -> 正文阅读 |
|
[大数据]【最全的大数据面试系列】Hadoop面试题大全(一) |
面试题目录1、集群的最主要瓶颈磁盘IO 2、Hadoop运行模式单机版、伪分布式模式、完全分布式模式 3、HDFS写流程1)client 客户端发送上传请求,通过 RPC 与 namenode 建立通信,namenode 检查该用户是否有上传权限,以及上传的文件是否在 hdfs 对应的目录下重名,如果这两者有任意一个不满足,则直接报错,如果两者都满足,则返回给客户端一个可以上传的信息 2)client 根据文件的大小进行切分,默认 128M一块,切分完成之后给namenode 发送请求第一个 block 块上传到哪些服务器上 3)namenode 收到请求之后,根据网络拓扑和机架感知以及副本机制进行文件分配,返回可用的 DataNode 的地址 4)客户端收到地址之后与服务器地址列表中的一个节点如 A 进行通信,本质上就是 RPC 调用,建立 pipeline,A 收到请求后会继续调用 B,B 在调用 C,将整个 pipeline 建立完成,逐级返回 client 5)client 开始向 A 上发送第一个 block(先从磁盘读取数据然后放到本地内存缓存),以 packet(数据包,64kb)为单位,A 收到一个 packet 就会发送给 B,然后 B 发送给 C,A 每传完一个 packet 就会放入一个应答队列等待应答 6)数据被分割成一个个的 packet 数据包在 pipeline 上依次传输,在pipeline 反向传输中,逐个发送 ack(命令正确应答),最终由 pipeline 中第一个 DataNode 节点 A 将 pipelineack 发送给 Client 7)当一个 block 传输完成之后, Client 再次请求 NameNode 上传第二个block ,namenode 重新选择三台 DataNode 给 client 4、解释“hadoop”和“hadoop 生态系统”两个概念Hadoop是指Hadoop框架本身;hadoop生态系统,不仅包含hadoop,还包括保证hadoop框架正常高效运行其他框架,比如zookeeper、Flume、Hbase、Hive、Sqoop等辅助框架。 5、请列出正常工作的Hadoop集群中Hadoop都分别需要启动哪些进程,它们的作用分别是什么?1)NameNode:它是hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存有metadate。 6、 HDFS 中的 block 默认保存几份?默认保存3份 7、HDFS读流程1)client 向 namenode 发送 RPC 请求。请求文件 block 的位置 2)namenode 收到请求之后会检查用户权限以及是否有这个文件,如果都符合,则会视情况返回部分或全部的 block 列表,对于每个 block,NameNode都会返回含有该 block 副本的 DataNode 地址; 这些返回的 DN 地址,会按照集群拓扑结构得出 DataNode 与客户端的距离,然后进行排序,排序两个规则:网络拓扑结构中距离 Client 近的排靠前;心跳机制中超时汇报的 DN 状态为 STALE,这样的排靠后 3)Client 选取排序靠前的 DataNode 来读取 block,如果客户端本身就是DataNode,那么将从本地直接获取数据(短路读取特性) 4)底层上本质是建立 Socket Stream(FSDataInputStream),重复的调用父类 DataInputStream 的 read 方法,直到这个块上的数据读取完毕 5)当读完列表的 block 后,若文件读取还没有结束,客户端会继续向NameNode 获取下一批的 block 列表6)读取完一个 block 都会进行 checksum 验证,如果读取 DataNode 时出现错误,客户端会通知 NameNode,然后再从下一个拥有该 block 副本的DataNode 继续读 7)read 方法是并行的读取 block 信息,不是一块一块的读取;NameNode只是返回 Client 请求包含块的 DataNode 地址,并不是返回请求块的数据 8) 最终读取来所有的 block 会合并成一个完整的最终文件 8、负责HDFS数据存储的是哪一部分?DataNode负责数据存储 9、SecondaryNameNode的目的是什么?他的目的使帮助NameNode合并编辑日志,减少NameNode 启动时间 10、hadoop的块大小,从哪个版本开始是128MHadoop1.x都是64M,hadoop2.x开始都是128M。 11、HDFS 在读取文件的时候,如果其中一个块突然损坏了怎么办客户端读取完 DataNode 上的块之后会进行 checksum 验证,也就是把客户端读取到本地的块与 HDFS 上的原始块进行校验,如果发现校验结果不一致,客户端会通知NameNode,然后再从下一个拥有该 block 副本的 DataNode 继续读 12、econdary namenode工作机制1)第一阶段:NameNode启动 NameNode与SecondaryNameNode 的区别与联系? 13、HDFS组成架构架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。下面我们分别介绍这四个组成部分。 总结Hadoop的面试题总共分成两个篇章,内容较多,小伙伴们可以选择自己需要的部分进行查看。更多的大数据资料以及本文安装包可以通过下方公众号获取哦,加入小禅的🏘?大数据技术社区一起交流学习,感谢支持!💪 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:35:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |