大数据面试高频题目 - 深入解析 Hadoop:探索强大的HDFS存储系统

这篇具有很好参考价值的文章主要介绍了大数据面试高频题目 - 深入解析 Hadoop:探索强大的HDFS存储系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在大数据面试中,深刻理解 Hadoop 是取得成功的关键之一。以下是一些关于 Hadoop 的HDFS存储系统的高频面试题目以及解答思路和经验分享:

一、 HDFS读流程

  1. 发起下载请求: 客户端创建分布式文件系统,向 NameNode 请求下载 user/warehouse/ss.avi 文件;
  2. 获取文件元数据:NameNode 返回目标文件的元数据,包括文件块的位置;
  3. 请求读取第一个块:客户端向 data1 请求读取第一个块;
  4. 数据传输:data1 通过 FSDataInputStream 将数据返回给客户端;
  5. 继续请求读取:重复步骤 3-4 直到所有文件块都读取完毕,然后关闭 FSDataInputStream

二、 HDFS写流程

  1. 发起上传请求:客户端创建分布式文件系统,向 NameNode 请求上传 user/warehouse/ss.avi 文件;
  2. 权限与路径检查:NameNode 检查路径是否存在,客户端是否有上传权限,然后向客户端响应可上传文件;
  3. 请求上传第一个块:客户端请求上传第一个块,让 NameNode 返回 DataNode;
  4. 分配存储位置:NameNode 返回 dn1dn2dn3,表示用这三个节点存储数据;
  5. 建立传输通道:客户端请求建立块传输通道,三个 DataNode 相互协作;
  6. 数据传输与同步:客户端通过 FSDataOutputStream 向 dn1 传输数据,dn1 将数据保存并传输给 dn2dn2 再同步给 dn3
  7. 完成传输:数据传输完成后客户端关闭 FSDataOutputStream 并向 NameNode 响应数据传输成功。

三、HDFS写入流程中DataNode挂掉的处理

在某个 DataNode 挂掉时:

  • 客户端无法接收该 DataNode 的 ACK 确认;
  • 客户端通知 NameNode;
  • NameNode 检查并确定该块的副本与规定不符后通知其他空闲的 DataNode 复制副本;
  • 挂掉的节点恢复后,先删除不完整的数据。

四、HDFS的NameNode内存

  • Hadoop 2.x 系列,配置 NameNode 默认为 2000MB;
  • Hadoop 3.x 系列,NameNode 的内存是动态分配的,默认最小内存为 1GB,每增加 100 万个文件块,增加 1GB 内存。

五、小文件问题及解决方案

危害

  1. 存储层面:一个文件块占用 NameNode 大约 150 字节内存,128GB 内存可存储 9.1 亿文件块;
  2. 计算层面:每个小文件启动一个 MapTask,默认内存 1GB,浪费资源。

解决方案

  1. 采用HAR归档;
  2. 采用CombineTextInputFormat;
  3. 开启JVM重用;
  4. 自行编写MapReduce程序合并小文件。

六、纠删码原理

  • HDFS 默认情况下有三个副本,引入纠删码,通过计算方式可节省约一半的存储空间。
  • 例如,使用 rs-3-2-1024k 编码,每三个数据单元生成两个检验单元,共 5 个单元,只要有任意的三个单元存在就可以得到原始数据。

七、异构存储

  1. 存储类型:
  • RAM_DISK(内存镜像文件系统)
  • SSD(固态硬盘)
  • DISK(普通磁盘)
  • ARCHIVE(归档)
  • 存储策略:
  • lazy_persist:一个副本在 RAM_DISK,其余在 DISK
  • all_ssd:所有副本在 SSD
  • one_ssd:一个副本在 SSD,其余在 DISK
  • hot(默认):所有副本在 DISK

八、 HDFS的优缺点

优点

  1. 高容错性:数据自动保存多个副本,通过增加副本提高容错性;
  2. 适合处理大数据(数据规模、文件规模);
  3. 可构建在廉价机器上,通过多副本机制提高可靠性。

缺点

  1. 不适合低延时数据访问,比如毫秒级的存储数据是做不到的;
  2. 无法高效的对大量小文件进行存储,可能占用 NameNode 大量内存;
  3. 不支持并发写入、文件随机修改。

九、HDFS文件块大小

  1. 寻址与传输时间:寻址时间与传输时间的最佳状态为 1%;
  2. 磁盘传输速率:目前磁盘传输速率为 100MB/s;
  3. 文件块大小设置:取决于磁盘传输速率。

以上是关于 Hadoop 的HDFS系统的高频面试题目,希望这些问题和解答思路能够在面试中帮助你更自信地回答。如有特定问题或需要深入了解,请在评论区留言,我将尽力提供帮助。文章来源地址https://www.toymoban.com/news/detail-841062.html

到了这里,关于大数据面试高频题目 - 深入解析 Hadoop:探索强大的HDFS存储系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入探索GDB:Linux下强大的调试神器

    目录 一、GDB简介:源码级调试的基石 二、GDB基础操作:从入门到熟练 启动与基本命令 三、GDB进阶功能:解锁更深层次的调试能力 1. 回溯追踪:洞察调用栈 2. 动态内存检测:揪出内存问题 3. 条件断点与观察点:精准定位问题 4. 远程调试:跨越设备边界 四、实战技巧与最佳

    2024年04月27日
    浏览(32)
  • 《面试专题-----经典高频面试题收集一》解锁 Java 面试的关键:深度解析常见高频经典面试题(第一篇)

    大家好,我是码农阿豪,一位热爱 Java 编程的程序员。今天我想和大家分享一些常见的 Java 面试题,通过收集解析这些问题,希望能够帮助大家更好地准备面试,突破技术瓶颈, 把面试官按在地上摩擦 。 1. 运算符 运算符和、|和||的区别? 用最有效率的方法计算2乘以2的3次

    2024年02月04日
    浏览(41)
  • 【面试高频算法解析】算法练习3 双指针

    本专栏旨在通过分类学习算法,使您能够牢固掌握不同算法的理论要点。通过策略性地练习精选的经典题目,帮助您深度理解每种算法,避免出现刷了很多算法题,还是一知半解的状态 二分查找 回溯(Backtracking) 双指针 滑动窗口 深度优先搜索 广度优先搜索 贪心算法 单调

    2024年01月23日
    浏览(46)
  • 前端高频面试题汇总正题+(附答案解析)

    正题 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 解析 第1题解析 View Code 第2题解析 View Code 第3题解析 View Code 第4题解析 View Code 第5题解析 View Code 第6题解析 View Code 举例: View Code 第7题解析 View Code 举例: View Code 第8题解析 View Code 第9题解析 View Code 第10题解析 View Code   鉴定完毕,

    2024年02月08日
    浏览(37)
  • SQL面试必备:100道高频考题解析

    前言 在众多IT职场中,SQL技术一直是一个非常重要的技能点。如果你正在准备SQL相关的面试,那么这份“SQL面试 100 问”绝对是你不能错过的宝藏! 这份清单涵盖了100道高频考题,从基础知识到复杂应用都有所涉及,帮助你全面掌握SQL面试必备技能,轻松应对各种挑战。 同时

    2024年02月06日
    浏览(68)
  • 数字IC/FPGA面试题目合集解析(一)

    1,计算题:计算该触发器等效的建立保持时间(西安某Fabless面试笔试题) 2,计算题:计算组合逻辑的延时时间范围 3,选择题:Which of following ways cannot be used to improve timing of a hold violation path 问题:原触发器,即对于D点的建立时间,保持时间均为2ns,先由于存在线延时,对

    2024年02月06日
    浏览(46)
  • 深入探索Python的scipy库:强大的科学计算工具集(学scipy看这一篇文章就够了)

    引言: Python是一种功能强大且受欢迎的编程语言,广泛应用于科学计算、数据分析和工程应用领域。在Python生态系统中,scipy库是一个重要的工具,提供了许多用于科学计算的高级功能。本文将深入探索scipy库,介绍其主要功能和用法,并提供相应的代码示例和相关资源。 一、

    2024年02月09日
    浏览(55)
  • 深入剖析:Kafka流数据处理引擎的核心面试问题解析75问(5.7万字参考答案)

           Kafka 是一款开源的分布式流处理平台,被广泛应用于构建实时数据管道、日志聚合、事件驱动的架构等场景。本文将深入探究 Kafka 的基本原理、特点以及其在实际应用中的价值和作用。      Kafka 的基本原理是建立在发布-订阅模式之上的。生产者将消息发布到主题(

    2024年01月23日
    浏览(46)
  • 大数据高频面试题

    Hadoop基础 介绍下Hadoop Hadoop的特点 说下Hadoop生态圈组件及其作用 Hadoop主要分哪几个部分?他们有什么作用? Hadoop 1.x,2x,3.x的区别 Hadoop集群工作时启动哪些进程?它们有什么作用? 在集群计算的时候,什么是集群的主要瓶颈 搭建Hadoop集群的xml文件有哪些? Hadoop的checkpoint流程 Ha

    2024年02月08日
    浏览(33)
  • 【Java高级应用:深入探索Java编程的强大功能,JVM 类加载机制, JVM 内存模型,垃圾回收机制,JVM 字节码执行,异常处理机制】

    本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题 中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:

    2024年01月16日
    浏览(90)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包