hadoop面试题(大数据)(附答案)

本文详细介绍了Hadoop的核心组件,包括HDFS的分布式文件系统结构,如Namenode和Datanode的角色,数据冗余和容错机制;MapReduce的分布式计算模型,以及JobTracker和TaskTracker的职责;还讨论了YARN资源调度框架。此外,文章还涵盖了Hadoop的特点、优化策略以及生态系统中的其他组件,如Hive、Pig、HBase等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hadoop

Hadoop 中常问的就三块,第一:分布式存储(HDFS);第二:分布式计算框架(MapReduce);第三:资源调度框架(YARN)。

一,什么是Hadoop及其组件

Hadoop是一个开源分布式计算平台架构,基于apache(阿帕奇)协议发布,由java语言开发。主要包括

运行模式:单机版、伪分布式模式、完全分布式模式

1.HDFS(分布式文件管理系统)

1)HDFS的主要特点:

主要解决大数据处理问题,起源与谷歌的GFS

保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。

运行在廉价的机器上。
适合大数据的处理。HDFS默认会将文件分割成block(块),64M为1个block。然后将block按键值对存储在HDFS上,并将键值对的映射存到内存中。如果小文件太多,那内存的负担会很重。

HDFS中的两个重要角色:

①[Namenode]

1)管理文件系统的命名空间。

2)记录 每个文件数据快在各个Datanode上的位置和副本信息。

3)协调客户端对文件的访问。

4)记录命名空间内的改动或者空间本身属性的改动。

5)Namenode 使用事务日志记录HDFS元数据的变化。使用映像文件存储文件系统的命名空间,包括文件映射,文件属性等。

从社会学来看,Namenode是HDFS里面的管理者,发挥者管理、协调、操控的作用。

②[Datanode]

1)负责所在物理节点的存储管理。

2)一次写入,多次读取(不修改)。

3)文件由数据库组成,一般情况下,数据块的大小为64MB。

4)数据尽量散步到各个节点。

从社会学的角度来看,Datanode是HDFS的工作者,发挥按着Namenode的命令干活,并且把干活的进展和问题反馈到Namenode的作用。

2)客户端如何访问HDFS中一个文件呢?具体流程如下:

1.首先从Namenode获得组成这个文件的数据块位置列表。

2.接下来根据位置列表知道存储数据块的Datanode。

3.最后访问Datanode获取数据。

注意:Namenode并不参与数据实际传输。

3)数据存储系统,数据存储的可靠性至关重要。HDFS是如何保证其可靠性呢?它主要采用如下机理:

1.冗余副本策略,即所有数据都有副本,副本的数目可以在hdfs-site.xml中设置相应的复制因子。

2.机架策略,即HDFS的“机架感知”,一般在本机架存放一个副本,在其它机架再存放别的副本,这样可以防止机架失效时丢失数据,也可以提供带宽利用率。

3.心跳机制,即Namenode周期性从Datanode接受心跳信号和快报告,没有按时发送心跳的Datanode会被标记为宕机,不会再给任何I/O请求,若是Datanode失效造成副本数量下降,并且低于预先设置的阈值,Namenode会检测出这些数据块,并在合适的时机进行重新复制。

4.安全模式,Namenode启动时会先经过一个“安全模式”阶段。

5.校验和,客户端获取数据通过检查校验和,发现数据块是否损坏,从而确定是否要读取副本。

6.回收站,删除文件,会先到回收站/trash,其里面文件可以快速回复。

7.元数据保护,映像文件和事务日志是Namenode的核心数据,可以配置为拥有多个副本。

8.快照,支持存储某个时间点的映像,需要时可以使数据重返这个时间点的状态。

4)HDFS也是按照Master和Slave的结构。

分为NameNode、SecondaryNameNode、DataNode这几个角色。

NameNode:是Master节点,是大领导。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;

SecondaryNameNode:是一个小弟,分担大哥namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode。

DataNode:Slave节点,奴隶,干活的。负责存储client发来的数据块block;执行数据块的读写操作。

热备份:b是a的热备份,如果a坏掉。那么b马上运行代替a的工作。

冷备份:b是a的冷备份,如果a坏掉。那么b不能马上代替a工作。但是b上存储a的一些信息,减少a坏掉之后的损失。

fsimage:元数据镜像文件(文件系统的目录树。)

edits:元数据的操作日志(针对文件系统做的修改操作记录)

namenode内存中存储的是=fsimage+edits。

SecondaryNameNode负责定时默认1小时,从namenode上,获取fsimage和edits来进行合并,然后再发送给namenode。减少namenode的工作量。

5)HDFS的优缺点:

优点:a、高容错性
1)数据自动保存多个副本。通过增加副本的形式,提高容错性
2)某一个副本丢失以后,它可以自动恢复
b、适合处理大数据
1)数据规模:能够处理数据规模达到GB、TB,甚至PB级别的数据
2)文件规模:能够处理百万规模以上的文件数量,数量相当之大
c、可构建在廉价机器上、通过多副本机制,提高可靠性。
缺点:a、不适合低延时数据访问,比如毫秒级的存储数据,是做不到的
b、无法高校的对大量小文件进行存储
1)存储大量小文件的话,它会占用NameNode大量的内存来存储文件目录和块信息,是不可取的,因为NameNode的内存总是有限的。
2)小文件存储的寻址时间会超过读取时间(小文件量大,导致遍历的时间就长),违反了HDFS的设计目标。
c、不支持并发写入,文件随机修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值