大数据常见面试题(一)

一、当前集群环境

CDH 6.3.3
hadoop 3.0.0
hbase 2.1.0
hive 2.1.1
impala 3.2.0
spark 2.4.0
kafka 2.2.1
scala 2.11.12

二、hadoop

1.Hdfs的工作原理(读和写)★★★★★

在这里插入图片描述

读:client请求namenode ,获取目标文件的元数据信息,namenode校检无误后,返回给client,client根据元数据与就近的datanode建立连接,获取block 块,并将block 块合并后,返回给client。

写:client 向 namenode发出写 的请求,namenode 检查是否路径存在,权限等,通过后,将操作写入editLog,并返回一个节点列表,给client,client根据元数据与列表中就近的DataNode进行连接,并将data与返回的节点列表一并发送给它,此后,client就与所有的DataNode节点建立 piepline管道,一个DataNode写完后会传给下一个DataNode,每个DataNode写完一个 block 后,会返回确认信息给namenode。同时进行下一个 block的写入,直到全部写入完成。

2.MapReduce的原理 ★★★★★

在这里插入图片描述

MR把拿到的 split 分配给相应的 task,每个task处理对应的split,split 以line的方式读取每一行数据,将这些数据加载到一个环形缓冲区中,当环形缓冲区达到 80%的时候,会将这些数据溢写到磁盘中,同时按照 k-v的方式进行分区,(默认采用hashpartition),同时在每个分区内进行排序,如果这时设置了setcombinerclass,则会对每个分区的数据进行combiner操作,还可以设置 output-compress,对数据进行压缩,最后merge,根据分区规则,将数据归并到同一个文件中,等待reduce端拉取,等到所有的maptask 任务结束后,会根据分区数量启动相应的数量的reduceTask,每个reducetask 从mapTask机器上拷贝相应分区的数据到本地的缓冲区,缓冲区不够就溢写到磁盘,待所有数据拷贝完毕后,进行归并排序,之后按照相同的key分组,最后调用 reduce() 方法进行聚合处理,生成的结果将以文件形式在hdfs中体现。

3.Yarn的工作流程 ★★★★★

在这里插入图片描述

1.client 提交一个任务到Yarn,包括用户程序、 相关文件、applicationMasrer程序、启动AM(applicationMaster)命令。

2.RM(Resource Manager)分配第一个 container,并与所在的 NM(nodeManager)进行 通信,要求NM在container中启动 AM。

3.AM向RM注册自己,这样用户可以通过 RM查看程序的运行状态等,然后它准备为程序的各个任务申请资源,并监控他们的 运行状态直到任务结束。

4.AM以轮询的方式通过RPC协议与RM通信,申请和领取资源。

5.AM领取到资源后,会向申请到的Container所在的NM进行通信,要求NM在container中启动任务。

6.任务启动。NM为要启动的任务配置好环境变量、jar包、二进制文件等,并将启动命令写在一个脚步中,通过改脚步运行任务。

7.NM与相应的AM保持RPC通信,汇报自身任务的运行进度与状态

  • 16
    点赞
  • 128
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值