暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

大数据运维尖刀面试题(十一)

大数据研习社 2022-08-01
1081

长按二维码关注

大数据领域必关注的公众号


101、简述Hadoop有哪些调度器?


参考答案:
hadoop中常用的调度器有三种:

1)FIFO:(hadoop2.x之前的默认调度器),它先按照作业的优先级高低,再按照到达时间的先后选择被执行的作业。

2)计算能力调度器(容量调度器)Capacity schedular:(hadoop2.x之后的默认调度器)支持多个队列,每个队列可配置一定的资源量,每个队列采用FIFO调度策略,为了防止同一个作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源进行限定。调度时,首先按照以下策略选择一个合适队列:计算每个正在运行任务数与其应该分得的计算资源之间的比值,选择一个该比值最小的队列;然后按以下策略选择队列中一个作业,按照作业优先级和提交时间顺序选择,同时考虑用户资源量限制和内存限制。

 3)公平调度器Fair scheduler    同计算能力调度器类似,支持多队列多用户。每个队列的资源量可配置,同一队列中的作业公平共享队列中所有资源。


102、我们该如何选择调度器?


参考答案:

如果你的场景需要先提交的JOB限制性,那就FIFO。

如果想着大家都有机会获取到资源,就得用容量调度,公平调度。容量调度不好的地方是多个队列资源不能相互抢占,提前就把资源分走了,哪怕那个队列没有任务,所以一般都是公平调度。

FIFO调度没人单独用。公平调度支持在某个队列内部选择公平调度还是FIFO。

所以可以认为公平调度是一个混合的调度器。


103、hadoop集群可以运行的3个模式是什么?


参考答案:

(1)单机模式

(2)伪分布模式

(3)分布式


104、谈谈你对 Hadoop Streaming的认识?


参考答案:

(1)Hadoop Streaming框架最大的好处是,让任何语言编写的map, reduce程序能够在hadoop集群上运行;map/reduce程序只要遵循从标准输入stdin读,写出到标准输出stdout即可。  

(2)Hadoop Streaming容易进行单机调试,通过管道前后相接的方式就可以模拟streaming, 在本地完成map/reduce程序的调试 # cat inputfile | mapper | sort | reducer > output   。

(3)streaming框架还提供了作业提交时的丰富参数控制,直接通过streaming参数,而不需要使用java语言修改;很多mapreduce的高阶功能,都可以通过steaming参数的调整来完成。


105、简述在combiner和sort分别是发生在map 端还是在reduce端?


参考答案:

Combiner 发生在map节点;sort排序发生在map和reduce阶段。


106、用mr实现怎么实现一个大表和一个小表关联,以及两个大表怎么关联?谈谈你的思路


参考答案:

(1)大小表关联用Reduce join 的分布式缓存。

(2)两个大表关联:Reduce join + BloomFilter。


107、在yarn中,一个job 的运行流程是怎样的?


参考答案:

步骤1:用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster、用户程序等。

步骤2:ResourceManager为该应用程序分配第一个Container,并与对应的NodeManager通信,要求它在这个Container中启动应用程序的ApplicationMaster。

步骤3:ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控他的运行状态,直到运行结束,即要重复步骤4-7。

步骤4:ApplicationMaster采用轮询的方式通过RPC协议找ResourceManager申请和领取资源。

步骤5:一旦Application申请到资源后,便与对应的NodeManager通信,要求启动任务。

步骤6:NodeManager为任务设置好运行环境,包括环境变量、JAR包、二进制程序等,然后将任务启动命令写到另一个脚本中,并通过运行该脚本启动任务。

步骤7:各个任务通过RPC协议向ApplicationMaster汇报自己的状态和进度,ApplicationMaster随时掌握各个任务的运行状态,从而可以再任务失败时重新启动任务。在应用程序运行过程中,用户可以随时通过RPC协议ApplicationMaster查询应用程序的当前运行状态。

步骤8:应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。


108、假设HDFS数据块blocksize大小为64MB,输入类为FileInputFormat,现在有3个文件,大小分别为64KB, 65MB, 200MB,请问Hadoop框架会把这些文件拆分为多少块?总共有多少个map任务?(假设split的大小等于块的大小)


参考答案:

文件   数据块数量    map数量

64kb         1                1

65MB        2                1

200MB      4                4


109、描述一下hadoop生态圈中有哪些地方使用到了缓存机制,作用分别是什么?


参考答案:

(1)MapReduce中的shuffle过程中使用了缓存机制,map task的输出数据需要先写入内存缓冲区中,缓冲区的作用是批量收集map结果,减少磁盘IO的影响。

(2)Hbase中的缓存分了两层:MemStore 和 BlockCache,MemStore供写数据使用,BlockCache供读数据使用


110、请列出正常的hadoop集群中都分别需要启动哪些进程,他们的作用分别都是什么?请尽量列的详细一些。


参考答案:

1)NameNode :管理hdfs名字空间、数据块映射关系,配置副本策略,接受读写请求。

2)DataNode:存储数据,执行数据的读写操作。

3)ResourceManager:处理客户端请求,启动并监控ApplicationMaster,监控NodeManager,资源分配与调度。

4)NodeManager:单节点资源管理,处理来自ResourceManager和ApplicationMaster的指令。

5)Zookeeper:协调服务,实现NN  RM 高可用 。

6)FailoverController(zkfc ):不断监听本机NN的状态,然后周期性的向Zookeeper发送心跳,如果当前NN关掉了,重新选举NN Active。

7)journalnode:确保两个NN元数据保持同步。

欢迎点赞 + 收藏 + 在看  素质三连 


往期精彩回顾
程序员,如何避免内卷
Apache 架构师总结的 30 条架构原则
【全网首发】Hadoop 3.0分布式集群安装
大数据运维工程师经典面试题汇总(附带答案)
大数据面试130题
某集团大数据平台整体架构及实施方案完整目录
大数据凉凉了?Apache将一众大数据开源项目束之高阁!
实战企业数据湖,抢先数仓新玩法
Superset制作智慧数据大屏,看它就够了
Apache Flink 在快手的过去、现在和未来
华为云-基于Ambari构建大数据平台(上)
华为云-基于Ambari构建大数据平台(下)
【HBase调优】Hbase万亿级存储性能优化总结
【Python精华】100个Python练手小程序
【HBase企业应用开发】工作中自己总结的Hbase笔记,非常全面!
【剑指Offer】近50个常见算法面试题的Java实现代码

长按识别左侧二维码

     关注领福利    

  领10本经典大数据书

文章转载自大数据研习社,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论