大数据面试题集锦-Hadoop面试题(二)-HDFS

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

你准备好面试了吗?这里有一些面试中可能会问到的问题以及相对应的答案。如果你需要更多的面试经验和面试题关注一下"张飞的猪大数据分享"吧公众号会不定时的分享相关的知识和资料。

1、 HDFS 中的 block 默认保存几份

默认保存3份

2、HDFS 默认 BlockSize 是多大

默认64MB

3、负责HDFS数据存储的是哪一部分

DataNode负责数据存储

4、SecondaryNameNode的目的是什么

他的目的使帮助NameNode合并编辑日志减少NameNode 启动时间

5、文件大小设置增大有什么影响

HDFS中的文件在物理上是分块存储block块的大小可以通过配置参数( dfs.blocksize)来规定默认大小在hadoop2.x版本中是128M老版本中是64M。
  思考为什么块的大小不能设置的太小也不能设置的太大
  HDFS的块比磁盘的块大其目的是为了最小化寻址开销。如果块设置得足够大从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。因而传输一个由多个块组成的文件的时间取决于磁盘传输速率。
  如果寻址时间约为10ms而传输速率为100MB/s为了使寻址时间仅占传输时间的1%我们要将块大小设置约为100MB。默认的块大小128MB。
  块的大小10ms×100×100M/s = 100M如图
在这里插入图片描述
  增加文件块大小需要增加磁盘的传输速率。

6、hadoop的块大小从哪个版本开始是128M

Hadoop1.x都是64Mhadoop2.x开始都是128M。

7、HDFS的存储机制☆☆☆☆☆

HDFS存储机制包括HDFS的写入数据过程和读取数据过程两部分

HDFS写数据过程
在这里插入图片描述
  1客户端通过Distributed FileSystem模块向NameNode请求上传文件NameNode检查目标文件是否已存在父目录是否存在。
  2NameNode返回是否可以上传。
  3客户端请求第一个 block上传到哪几个datanode服务器上。
  4NameNode返回3个datanode节点分别为dn1、dn2、dn3。
  5客户端通过FSDataOutputStream模块请求dn1上传数据dn1收到请求会继续调用dn2然后dn2调用dn3将这个通信管道建立完成。
  6dn1、dn2、dn3逐级应答客户端。
  7客户端开始往dn1上传第一个block先从磁盘读取数据放到一个本地内存缓存以packet为单位dn1收到一个packet就会传给dn2dn2传给dn3
dn1每传一个packet会放入一个应答队列等待应答。
  8当一个block传输完成之后客户端再次请求NameNode上传第二个block的服务器。重复执行3-7步。

HDFS读数据过程
在这里插入图片描述
  1客户端通过Distributed FileSystem向NameNode请求下载文件NameNode通过查询元数据找到文件块所在的DataNode地址。
  2挑选一台DataNode就近原则然后随机服务器请求读取数据。
  3DataNode开始传输数据给客户端从磁盘里面读取数据输入流以packet为单位来做校验。
  4客户端以packet为单位接收先在本地缓存然后写入目标文件。

8、secondary namenode工作机制☆☆☆☆☆

在这里插入图片描述
1第一阶段NameNode启动
  1第一次启动NameNode格式化后创建fsimage和edits文件。如果不是第一次启动直接加载编辑日志和镜像文件到内存。
  2客户端对元数据进行增删改的请求。
  3NameNode记录操作日志更新滚动日志。
  4NameNode在内存中对数据进行增删改查。

2第二阶段Secondary NameNode工作
  1Secondary NameNode询问NameNode是否需要checkpoint。直接带回NameNode是否检查结果。
  2Secondary NameNode请求执行checkpoint。
  3NameNode滚动正在写的edits日志。
  4将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode。
  5Secondary NameNode加载编辑日志和镜像文件到内存并合并。
  6生成新的镜像文件fsimage.chkpoint。
  7拷贝fsimage.chkpoint到NameNode。
  8NameNode将fsimage.chkpoint重新命名成fsimage。

9、NameNode与SecondaryNameNode 的区别与联系☆☆☆☆☆

机制流程看第7题

1区别
  1NameNode负责管理整个文件系统的元数据以及每一个路径文件所对应的数据块信息。
  2SecondaryNameNode主要用于定期合并命名空间镜像和命名空间镜像的编辑日志。

2联系
  1SecondaryNameNode中保存了一份和namenode一致的镜像文件fsimage和编辑日志edits。
  2在主namenode发生故障时假设没有及时备份数据可以从SecondaryNameNode恢复数据。

10、HDFS组成架构☆☆☆☆☆

架构主要由四个部分组成分别为HDFS Client、NameNode、DataNode和Secondary NameNode。下面我们分别介绍这四个组成部分。
在这里插入图片描述
1Client就是客户端。
  1文件切分。文件上传HDFS的时候Client将文件切分成一个一个的Block然后进行存储
  2与NameNode交互获取文件的位置信息
  3与DataNode交互读取或者写入数据
  4Client提供一些命令来管理HDFS比如启动或者关闭HDFS
  5Client可以通过一些命令来访问HDFS
2NameNode就是Master它是一个主管、管理者。
  1管理HDFS的名称空间
  2管理数据块Block映射信息
  3配置副本策略
  4处理客户端读写请求。
3DataNode就是Slave。NameNode下达命令DataNode执行实际的操作。
  1存储实际的数据块
  2执行数据块的读/写操作。
4Secondary NameNode并非NameNode的热备。当NameNode挂掉的时候它并不能马上替换NameNode并提供服务。
  1辅助NameNode分担其工作量
  2定期合并Fsimage和Edits并推送给NameNode
  3在紧急情况下可辅助恢复NameNode。

11、HAnamenode 是如何工作的? ☆☆☆☆☆

在这里插入图片描述
ZKFailoverController主要职责
  1健康监测周期性的向它监控的NN发送健康探测命令从而来确定某个NameNode是否处于健康状态如果机器宕机心跳失败那么zkfc就会标记它处于一个不健康的状态。
  2会话管理如果NN是健康的zkfc就会在zookeeper中保持一个打开的会话如果NameNode同时还是Active状态的那么zkfc还会在Zookeeper中占有一个类型为短暂类型的znode当这个NN挂掉时这个znode将会被删除然后备用的NN将会得到这把锁升级为主NN同时标记状态为Active。
  3当宕机的NN新启动时它会再次注册zookeper发现已经有znode锁了便会自动变为Standby状态如此往复循环保证高可靠需要注意目前仅仅支持最多配置2个NN。
  4master选举如上所述通过在zookeeper中维持一个短暂类型的znode来实现抢占式的锁机制从而判断那个NameNode为Active状态

原文链接:
张飞的猪大数据面试题集锦
大数据面试题集锦-Hadoop面试题(二)-HDFS
Hadoop面试题(二)-HDFS

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Hadoop