大数据面试之HDFS常见题目

news2024/11/23 10:34:51

大数据面试之HDFS常见题目

HDFS常见题目

1 HDFS读流程和写流程

1.1 读流程(下载)

在这里插入图片描述

文字描述:

​ 客户端将要读取的文件路径发送给 NameNode,NameNode 获取文件的元信息(主要是 block 的存放位置信息)返回给客户端,客户端根据返回的信息找到相应 DataNode 逐个获取文件的 block 块 ,并在客户端本地进行数据追加合并,从而获得整个文件。

1.2 写流程(上传)

在这里插入图片描述

文字描述:

​ 客户端要向 HDFS 写数据,首先要跟 NameNode 通信以确认可以写文件,并获得接收文件 block 的 DataNode ,然后客户端按顺序将文件逐个 block 传递给相应 DataNode ,并由接收到 block 的 DataNode 负责向其他 DataNode 复制 block 的副本

1、 Client 发写数据请求

2、 NameNode 响应请求,然后做校验工作,如果能上传该数据,则返回该文件的所有切块信息应该被存在哪些 DataNode 上的 DataNodes列表,例如下面的情况:

blk-001:hadoop02 hadoop03

blk-002:hadoop03 hadoop04

3、 Client 拿到 DataNode 列表之后,开始传数据

4、 首先传第一块 blk-001,DataNode 列表就是 hadoop02 hadoop03,client 就把 blk-001 传到 hadoop02 和 hadoop03 上

5、 以此类推,用传第一个数据块同样的方式传递其他的数据块

6、 当所有的数据块都传完之后,Client 会给 NameNode 返回一个状态信息,表示数据已全部写入成功,或者是写入失败的信息。

7、 NameNode 接收到 Client 返回的状态信息来判断当次写入数据的请求是否成功,如果成功,就需要更新元数据信息。

2 HDFS小文件处理

1、小文件有什么影响?

​ 在大数据的场景下,从海量数据的存储和计算两方面来分析:

​ 其实还有数据传输层面。

(1)存储层面:

​ 主要是耗费NameNode的内存存储,因为不论你存储的文件多小,都会在NameNode中占用150 byte 左右的元数据存储空间,那这样的话,如果大量的小文件会消耗掉NameNode的内存空间。例如下面的计算示例:

​ 1个文件块,占用NameNode内存150字节

​ 那么128G能存储多少文件块?计算公式:128 * 1024 * 1024 * 1024 byte / 150 byte = 9亿文件块左右

​ 上面算出来的是理论上,128G的内存可以管理的数据的大小为:128m * 9亿

​ 但是如果是大批量的小文件,而且没有进行优化处理的话,一个小文件也是占用 150 字节的元数据信息存储空间,那么也就意味着NameNode的128G的内存实际管理的数据大小会严重的缩减 。

(2)计算层面:

​ 默认切片规则是每个文件单独切片,所以每个小文件哪怕是1字节都会起到一个MapTask,而每个MapTask占用的内存是1G,这样就占用了大量计算资源。

2、小文件怎么解决?

(1)har归档方式

​ 将小文件归档。就是给多个小文件打包放到一起统一进行处理,这样的话在元数据存储和计算方面都能得到优化。

​ 举个生活中的例子:大家在电商网站购物,在同一家店铺购买了10个商品,你觉得店家会给发10个快递吗?基本上不会发10个快递,会给10个商品进行打包合并,最后可能是一两个快递过来。

(2)采用CombineTextInputFormat

​ 帮所有的文件放到一起统一进行切片。

​ 别管多少个文件,都放到一起,这样就避免了一个字节开启一个MapTask了。

(3)开启JVM重用

​ 有小文件场景开启JVM重用;如果没有小文件,不要开启JVM重用,因为开启之后会一直占用使用到的task slot卡槽,直到任务完成才释放。

​ JVM重用可以使JVM实例在同一个job中重新使用N次,N的值可以在Hadoop的mapred-site.xml文件中进行配置。通常在10-20之间

<property>
  <name>mapreduce.job.jvm.numtasks</name>
  <value>10</value>
  <description>How many tasks to run per jvm,if set to -1,there is no limit</description>
</property>

3 HDFS副本数

​ 默认是3个,可以根据数据的重要度进行设置

4 HDFS默认块大小

场景大小
1.x64M
2.x、3.x128M
本地模式调试32M
企业128M/256M/512M

那么怎么选择块大小?取决于硬盘的读写速度

普通机械硬盘,假设读写速度是 100m/s ,选择块大小是128M即可

普通固态硬盘,假设读写速度是 300m/s ,选择块大小是256M即可

高级固态硬盘,假设读写速度是 600m/s ,选择块大小是512M即可

更多题目后续会随着时间陆续补充



声明:
        文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。


By luoyepiaoxue2014

B站: https://space.bilibili.com/1523287361 点击打开链接
微博: http://weibo.com/luoyepiaoxue2014 点击打开链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

美团外卖推荐智能流量分发的实践与探索

总第548篇2022年 第065篇美团外卖推荐团队在推荐算法的长期落地实践中&#xff0c;针对外卖业务情境化特点对排序模型进行深入探索与优化。本文介绍了面向情境化建模的“情境细分统一模型”建模思路&#xff0c;通过用户行为序列建模以及专家网络两个模块的优化&#xff0c;实现…

简单实用:css+html绘制常见图表

提到绘制图表&#xff0c;大家可能想到ECharts&#xff0c;其实&#xff0c;一些简单的图表可以直接通过csshtml实现&#xff0c;下面手把手带大家绘制&#xff0c;初学者也能轻松掌握。 1 csshtml绘制柱形图 我们先写一个超简单的html文件。 <div class"bargraph&q…

多维数组地址映射问题的求解(3维、4维为例)——数据结构

在上篇我大概介绍了多维数组的地址映射问题&#xff0c;但是不够完善&#xff0c;很多朋友还没有彻底学会&#xff0c;表示很头疼。这一方面的总结确实比较少&#xff0c;而且也很麻烦&#xff0c;但是不要怕&#xff0c;看完我的总结&#xff0c;相信你一定会有一直醍醐灌顶的…

《2022中国PaaS市场研究及选型评估报告》正式发布

《中智观察》第1741篇推送作者&#xff1a;海比研究院编辑&#xff1a;晓晓编审&#xff1a;赵满头图来源&#xff1a;中国软件网从2006年概念兴起至今&#xff0c;云计算已经在国内走过整整十五年的历程。云计算的三大模式SaaS、PaaS、IaaS从陌生到熟悉&#xff0c;从研发到应…

ML Journal6—OpenCV中的GUI功能

图像入门这是将在本教程中使用的图像borz.jpgimport cv2 as cv import sysimg cv.imread(borz.jpg) if img is None:sys.exit("Could not read the file.") cv.imshow("Display Window", img) k cv.waitKey(0) if k ord("s"):cv.imwrite(&quo…

《自己动手写CPU》学习记录(5)——第5章/Part 1

目录 引言 致谢 流水线的数据相关问题 问题分析 RAW类型 1、相邻指令数据相关 2、间隔1条指令数据相关 3、间隔2条指令数据相关 修改后的代码 译码模块 指令执行模块 顶层模块 测试 测试代码 生成.data初始化文件 仿真结果 引言 随章节进度继续推进&#xff0c…

【视频】马尔可夫链原理可视化解释与R语言区制转换MRS实例|数据分享

原文链接&#xff1a;http://tecdat.cn/?p12280马尔可夫链是从一个“状态”&#xff08;一种情况或一组值&#xff09;跳到另一个“状态”的数学系统。本文介绍了马尔可夫链和一种简单的状态转移模型&#xff0c;该模型构成了隐马尔可夫模型&#xff08;HMM&#xff09;的特例…

近期方案研究总结(那些你用的到的排列组合)

方案一 这个方案只一个位置一个号码&#xff0c;标的物即一个位置八十期不重即可以切入&#xff0c;以这样的思路去进行扩充。 纬度一 两期重复形态为&#xff1a;11、22、33、44、55、66、77、88、99、1010。 数上升一形态为&#xff1a;12、23、34、45、56、67、78、89、910…

微服务框架 SpringCloud微服务架构 28 数据同步 28.6 测试同步功能

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构28 数据同步28.6 测试同步功能28.6.1 直接开干28 数据同步 28.6 测试同步…

云安全系列5:2023 年需要了解的 40个云安全术语

云安全具有广泛而复杂的特点&#xff0c;它有许多特定的术语和首字母缩略词。我们在这里整理了一些云安全术语。将其用作指南&#xff0c;可帮助您了解云安全的细微差别并更便于学习相关内容。 Agent 代理是专门的软件包或应用程序&#xff0c;部署到设备或机器上以完成与安全…

IDEA:Idea 集成 EasyYApi 插件实现接口文档的生成与更新

我是 ABin-阿斌&#xff1a;写一生代码&#xff0c;创一世佳话&#xff0c;筑一览芳华。如果小伙伴们觉得不错就一键三连吧~ 声明&#xff1a;文章原文来源处&#xff1a; https://blog.csdn.net/weixin_40863968/article/details/122432678https://www.jianshu.com/p/cd91590…

10个知识点让你读懂Spring MVC容器

DispatcherServlet 的配置参数 可以通过的属性指定配置参数&#xff1a; namespace参数&#xff1a;DispatcherServlet对应的命名空间&#xff0c;默认是WEB-INF/-servlet.xml。在显式配置该参数后&#xff0c;新的配置文件对应的路径是WEB-INF/.xml&#xff0c;例如如果将name…

Android 移植iperf3.13 测试网络

iperf,测试网络性能的&#xff0c;不同于 webrtc里面的gcc 算法预估网络带宽&#xff0c;iperf是实际占用网络来传输数据测量实际的网络性能。 官网&#xff1a;https://iperf.fr/ 官方就有 android 的下载 https://iperf.fr/iperf-download.php#android&#xff0c; 但是看起…

绕线机算法模型(Simulink仿真验证+PLC代码实现)

绕线机应用的详细内容大家可以参看下面这篇博客,这里不再赘述。本文主要借助Simulink仿真分析和解决工程实际问题。希望对大家学习Simulink有所帮助。限于水平和能力所限,文中难免出现错误和不足之处,诚恳的希望大家批评和指正。 S7-200 SMART PLC和V20变频器绕线机控制应用…

Linux(在 Linux 上搭建 java 部署环境(安装jdk/tomcat/mysql) + 将程序部署到云服务器上的操作)

目录 &#x1f432; 1. 在 Linux 上搭建 java 部署环境 &#x1f984; 1.1 安装 jdk &#x1f984; 1.2 安装 tomcat &#x1f984; 1.3 安装 mysql &#x1f432; 2. 将[博客系统]部署到云服务器上 &#x1f984; 2.1 先在云服务器上,创建和之前 windows 上一样的数据库…

德勤、阿里为数据智能时代造势,是风口还是韭菜?

前不久&#xff0c;德勤和阿里高调发布了业内首个DAAS报告《DAAS数字化新世代的最优解》&#xff0c;强调“企业不应该继续将数据智能建设当作‘选择题’&#xff0c;而是一道‘必答题’&#xff01;” 德勤管理咨询中国首席执行官戴耀华&#xff08;右&#xff09;与阿里巴巴集…

自学编程技术如何选择书籍?

首先自学编程的话&#xff0c;也是要先确定要选择适合自己的编程语言。然后再购买相应的编程教材&#xff0c;不知道怎么选择的话&#xff0c;可以直接选择黑马的原创书籍。 《C语言开发基础》 内容简介 本书是对《C语言开发入门教程》一书的全新改版&#xff0c;本次改版结合…

智能驾驶穿越“寒冬”:Argo AI们倒下,复睿智行们崛起

作者 | 曾响铃 文 | 响铃说&#xff08;xiangling0815&#xff09; 寒气还在智能驾驶领域蔓延。 在过去的一段时间&#xff0c;裁员、倒闭、破产、市值下跌、巨头撤离等等一系列不好的消息在智能驾驶行业频频爆出&#xff0c;一批老牌的智能驾驶企业更是倒在了黎明前。 智能…

OpenCV实战——实现高效图像扫描循环

OpenCV实战——实现高效图像扫描循环0. 前言1. 测量代码运行时间2. 计算不同扫描算法的执行时间4. 完整代码及运行结果相关链接0. 前言 在《像素操作》一节中&#xff0c;我们介绍了扫描图像以处理其像素的不同方法。在本节中&#xff0c;我们将学习比较这些方法的计算效率。编…

Linux篇 一、香橙派Zero2设置开机连接wifi

香橙派Zero2系列文章目录 一、香橙派Zero2设置开机连接wifi 文章目录香橙派Zero2系列文章目录前言一、调试串口的连接说明二、WIFI 连接测试1.首先使用 nmcli dev wifi 命令扫描周围的 WIFI 热点2.找到自己的wifi&#xff0c;准备好wifi名称和密码三、设置开机连接WiFi总结前言…