hadoop面试题之HDFS

1、简单介绍下hadoop吧?

    广义上hadoop是指与hadoop相关的大数据生态圈。包含hive、spark、hbase等。

    狭义上hadoop指的是apache的开源框架。有三个核心组件:

----hdfs:分布式文件存储系统

----yarn:分布式资源管理调度平台

----mr:分布式计算引擎

2、介绍下hdfs?

全称为Hadoop Distributed File System。有三个核心组件:

namenode:有三个作用,第一是负责保存集群的元数据信息,第二是负责维护整个集群节点的正常运行。

第三是负责处理客户端的请求。

datanode:负责实际保存数据。实际执行数据块的读写操作。

secondarynamenode:辅助namenode进行元数据的管理。不是namenode的备份。

3、namenode的工作机制?

    namenode在内存中保存着整个内存系统的名称空间和文件数据块的地址映射。整个hdfs可存储的文件数受限于namenode的内存大小。所以hdfs不适合大量小文件的存储。

---namenode有三种元数据存储方式来管理元数据:

    》内存元数据:内存中保存了完整的元数据

    》保存在磁盘上的元数据镜像文件(fsimage):该文件时hdfs存在磁盘中的元数据检查点,里面保存的是最后一次检查点之前的hdfs文件系统中所有目录和文件的序列化信息。

    》数据操作日志文件(edits):用于衔接内存meta data和持久化元数据镜像fsimage之间的操作日志文件。保存了自最后一次检查点之后所有针对hdfs文件系统的操作。如对文件的增删改查。

4、如何查看元数据信息?

    因为edits和fsimage文件是经过序列化的,所以不能直接查看。hadoop2.0以上提供了查看两种文件的工具。

----命令:hdfs oiv 可以将fsimage文件转换成其他格式,如xml和文本文件。-i 表示输入fsimage文件。-o 输出文件路径,-p 指定输出文件

                hdfs oev可以查看edits文件。同理需要指定相关参数。

详情查看:https://www.imooc.com/article/79705

4、datanode的工作机制?

    1)以数据块的形式存储hdfs文件

    2)datanode响应客户端的读写请求

    3)周期性的向namenode汇报心跳信息、数据块信息、缓存数据块信息

5、secondary namenode工作机制?

    当发生checkpoint机制时会触发second namenode进行工作。checkpoint:

    新的edists文件不会立即和fsimage文件合并,是在edits文件大小超过(默认)64m,或者时间超过(默认)1小时,会触发checkpoint操作。当checkpoint时,namenode会新建一个edits.new的文件,此时second namenode将文件fsimage文件和edits文件(http get)到本地,然后加载到内存中进行合并,完成的文件名称为fsimage.ckpt。最后 second namenode将该文件(http post)到namenode,然后edits.new和fsimage.ckpt文件转换为fsimage和edits。


secondary namenode工作机制

6、hdfs的文件副本机制?

    所有的文件都是以块的形式保存到hdfs中。块的大小默认为128m。在hdfs-site文件中进行指定。

    动态副本创建策略:默认副本数是3,可以在上传文件时,显式设定replication。也可以通过指令修改文件的副本数 hadoop fs -setrep -R 1

7、为实现高可用,hdfs采用了哪些策略?

    副本机制、机架感知、心跳机制、安全模式、校验和、回收站、元数据保护、快照机制(具体介绍导航-https://www.jianshu.com/writer#/notebooks/44567747/notes/66453316)

8、hdfs的存储过程?


hdfs存储过程

    ①client向hdfs发起写请求,通过RPC与namenode建立通讯。namenode检查文件是否存在等信息,返回是否可以存储。

    ②client将文件切割为一个个block块,client申请存储第一块block。namenode返回可以存储这个block块的datanode的地址,假设为ABC。

    ③A到B到C逐级构建pipeline。client向A上传第一个packet,默认为64k。A收到一个packet后会将packet传给B,再传给C。pipeline反方向返回ack信息。最终由第一个节点A将pipelineack发送给client

    ④一个block完成之后,再进行下一个block的存储过程。

9、hdfs的读过程?


hdfs读写过程


10、hdfs的垃圾桶机制?

    hdfs的垃圾桶机制默认是关闭的,需要手动开启。hdfs删除的文件不会立刻就删除,而是在设定的时间后进行删除。

11、hdfs的扩容和缩容

12、

你可能感兴趣的:(hadoop面试题之HDFS)