微众大数据开发高频面试题及答案【附JD分析】

推荐阅读文章列表:大数据开发面试笔记V4.0 || 面试聊数仓第一季 || 小白大数据学习路线

一、JD分析

根据业务方提供的需求,完成数仓建模开发【考察业务理解和SQL能力

深入理解需求,建立核心指标,完成数据质量监控【考察业务理解和数据质量保障能力

二、高频面试题总结

1. 如何进行数据质量监控

从四个原则来回答:【每个原则再结合实际来举例,吊打面试官,不懂的评论区讨论一下

  1. 准确性
  2. 完整性
  3. 一致性
  4. 及时性

2. 讲一下项目中是如何分层的

先简单介绍五层架构:ods、dwd、dwm、dws、ads

然后介绍为什么这样分层,每一层干了什么

3. MapReduce的过程

  • map阶段:首先通过InputFormat把输入目录下的文件进行逻辑切片,默认大小等于block大小,并且每一个切片由一个maptask来处理,同时将切片中的数据解析成<key,value>的键值对,k表示偏移量,v表示一行内容;紧接着调用Mapper类中的map方法。将每一行内容进行处理,解析为<k,v>的键值对,在wordCount案例中,k表示单词,v表示数字1 ;
  • shuffle阶段:map端shuffle和reduce端shuffle,详细内容见 最新大数据开发面试笔记V4.0
  • reduce阶段:key相同的数据会调用一次reduce方法,每次调用产生一个键值对,最后将这些键值对写入到HDFS文件中。
  • 4. 写过UDF函数没

    • 写过,在进行count distinct优化的时候,实现了bitmap的创建以及计算功能
    • UDF主要分为三类,包括udf、udaf、udtf
    • 在创建UDF函数的时候,只需要按照重写固定的重写方法就行了

    5. Spark和MapReduce的区别

  • MapReduce需要将计算的中间结果写入磁盘,然后还要读取磁盘,从而导致了频繁的磁盘IO;而Spark不需要将计算的中间结果写入磁盘,这得益于Spark的RDD弹性分布式数据集和DAG有向无环图,中间结果能够以RDD的形式存放在内存中,这样大大减少了磁盘IO。
  • MapReduce在shuffle时需要花费大量时间排序,而spark在shuffle时如果选择基于hash的计算引擎,是不需要排序的,这样就会节省大量时间。
  • MapReduce是多进程模型,每个task会运行在一个独立的JVM进程中,每次启动都需要重新申请资源,消耗了大量的时间;而Spark是多线程模型,每个executor会单独运行在一个JVM进程中,每个task则是运行在executor中的一个线程。
  • #数据人的面试交流地##秋招的第一个offer,大家都拿到了吗##秋招##大数据开发#
    全部评论
    bitmap那部份有详细的解释嘛,求
    点赞 回复
    分享
    发布于 2023-08-25 11:50 陕西
    微众的数据开发和数据仓库有什么区别啊
    点赞 回复
    分享
    发布于 2023-09-23 13:11 湖北
    滴滴
    校招火热招聘中
    官网直投

    相关推荐

    5 45 评论
    分享
    牛客网
    牛客企业服务