Hadoop常见面试题-01(有答案)

1、Hadoop是什么?

是一个大数据分析处理平台。
HDFS:分布式文件存储系统==
MapReduce:分布式计算框架==
Yarn:集群资源管理和任务调度
        #资源指的是和程序运行相关的硬件资源
        cpu ram内存

        #任务调度
        什么是调度-->集群资源繁忙的时候 如何分配资源给各个程序  
        调度的关键是策略:先来后到  权重

2、Hadoop的优点

扩容能力强  -->这间接导致了成本低
    不注重单机能力,看中集群的整体能力

可靠性高 --> 后面很多体现了它的可靠性(副本机制,应答响应机制,)

通用性强 --> 技术是通用的,业务是不通的

3、Hadoop集群介绍

两个集群物理上在一起,逻辑上分离
HDFS集群(主从架构)
    namenode,
    datanode,
    secondarynamenode
YARN集群(主从架构)
    resouecrmanager(RN)
    nodemanager(NM)

我们常说的Hadoop集群指的是什么?
指的是HDFS集群 和 YARN集群
为什么没有MapReduce集群?
MapReduce是计算的,取决于你写不写代码

4、HDFS核心特性(几乎必问)

1、分布式多台机器存储
--数据量很大,纵向有上限,横向是没有上限的
2、这台机器只有1024T的内存,文件刚好1025T,怎么办?
--分块存储的
--可以对块并行操作,提高效率
3、快速找到文件被放在哪个位置
--元数据
4、刚好这台被雷给咔嚓了
--数据备份(replication)

注意: 一次写入多次读写,没有编辑修改功能

5、HDFS文件上传流程(几乎必问)

如何记这个流程:
1、client发送请求,首先这个请求是发给谁的?
2、namenode的作用是什么
3、namenode接受请求后直接同意吗?
4、开始上传
    1、三副本机制
    2、块,包,管道机制
    3、可靠
        1、ACK应答响应机制
        2、在传输过程中,某一个DN挂掉了怎么办?
小文件吃内存不吃磁盘

 zookeeper:任意一个客户端访问首先访问的任意一个服务器节点,如果是查看操作,follower都可以处理,如果是写操作,需要先转发再处理
hdfs:不管干什么,第一步先连接namenode。
客户端和namenode不在一台机器上:
    namenode装在node1上,客户端指向hdfs发起请求的机器,比如node3
    RPC-->远程过程调用协议
    RPC-->远程过程调用协议
    RPC-->远程过程调用协议

 namenode的作用:
NN维护文件系统的元数据
NN记录维护DN的健康状态
    1、DN的磁盘使用率
    2、DN是否存活

 

上传:管道机制(pipeline)
client -->a-->b-->c
请求上传:NN判断是否具备上传条件
    权限
    路径是否正常检查
    
客户端采用一次上次一个块

数据包:64k

靠谱的机制:
        1、ACK应答响应机制:保证数据的完整性
        发送队列--接受队列

       2在上传过程中,pipeline可能出现故障断开连接
        HDFS认为只要上传成功一个就是成功的,剩下的缺失的有NN指定其它DN进行复制即可
        如果一个都没有上传成功,DN会告诉NN,让NN重新分配上传数据

 HDFS三副本机制
1、第一个块优先本地,否则就近随机
2、第二块和第一个块不同机架,随机
3、第三个块和块在同一个机架,不同机器

前提条件是机架感知

如果没有机架感知,或者副本数不是3
--》第一块优先本地,其它随机

6、HDFS下载流程

流程如何记住:
1、客户端发送请求,namenode检查权限和文件位置
2、汇总文件位置(近的靠前,状态良好的靠前)
3、数据块传输,最后通过CRC循环冗余码校验将数据拼接成原本的文件

不管是访问,上传,下载都需要访问namenode
那namenode为什么知道这些信息呢?
DN不停的汇报,心跳机制。

高可用--就是解决NN挂掉了如何解决--DN挂掉了问题不大,有副本机制

NN拿到文件各个块所放的信息后,会进行排序,近的靠前,状态良好的靠前。

7、NN,DN职责概述

记忆版:

namenode将元数据加载在内存中()
        namenode只会永久的记录目录树的结构
        并不会永久的记录文件的数据块位置信息
        这些位置信息需要通过datanode汇报才能够知道。
namenode和datanode有通信机制
        1、注册加汇报:datanode启动后,会想namenode注册(告诉老大我启动成功了),并且告诉老大我手里有那些块
        2、心跳机制:DN定时像NN汇报自己存活 3秒
        数据块汇报机制:定时告诉NN我手里有那些个块 6小时
        

完整版:
1、NameNode并不持久化存储每个文件中各个块所在的DataNode的位置信息,这些信息会在系统启动时从数据节点重建。
2、NameNode是Hadoop集群中的单点故障。
3、NameNode所在机器通常会配置有大量内存(RAM)。

什么是单点故障?

8、namenode元数据管理机制

1、namenode管理的是什么?
    文件系统的目录树结构,文件各个块的位置,大小,副本数等等
    DN的健康状态
        磁盘使用率
        是否存活
    --这里以及开始汇总了。老是忘记DN的健康状态
2、重点关注和文件系统相关的元数据
        1、为了客户端查询元数据快速,namenode把元数据保存在内存中
        2、内存的弊端
            断电数据丢失如何解决?
        3、持久化元数据到磁盘上fsimage
            如何避免两次持久化操作中间的数据丢失
            编辑日志  edits log    
            日志的目的是出错之后可以根据日志重演操作记录恢复数据
            
            内存中的元数据==fsimage+edits log
            
1、如何避免fsimage不会太旧
2、如何避免edits1og不会太大
3、如何不影响namenode正常服务。--》将fsimage和edits log合并是非常耗费内存的

辅助角色--- 其主要职责帮助nameNode进行元数据的合并==。

9、secondarynamenode如何合并(面试常问)

每达到触发条件,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge(这个过程称为checkpoint)

为什么不把namenode和secondarynamenode放在一个机器上?
namenode管理元数据放在内存中
secondarynamenode合并元数据是放在内存中
都消耗内存,不能放在一起。

10、HDFS辅助工具

#跨集群复制操作
hadoop distcp hdfs://node1:8020/1.txt  hdfs:node5:8020/itcast
前缀            档案名称               档案目录    输出到哪里去
test.har  h代表hadoop ar代表归档


#创建档案
hadoop archive -archiveName test.har -p /small /outputdir

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值