【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十一)

持续分享有用、有价值、精选的优质大数据面试题

致力于打造全网最全的大数据面试专题题库

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元数据保持同步。

持续分享有用、有价值、精选的优质大数据面试题

致力于打造全网最全的大数据面试专题题库

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据研习社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值