本文是学习群的一个在杭州做.net的同学转型大数据时,在杭州面试总结的面经知识点。该同学转型经历可以参考:两年 .net 开发转型大数据,上岸阿里P6
一、若干中小公司
1..mapreduce过程介绍一下
2.项目中用到的hive存储结构有哪些
3.查看连续5天登陆的用户
4.spark 的yarn集群的cluster模式运行和client模式运行的区别是什么
5.spark调优你知道的有哪些?
6.RDD宽依赖和窄依赖的区别
7.RDD是什么
8.spark sql和hive sql的开窗函数的格式是怎样的
9.对数据仓库有什么了解?
10.项目中的集群规模是怎样的?
11.介绍一下项目的整体流程?
12.sqoop拉取mysql业务数据时,拉取的频率太高,导致数据库压力过大,出现一些慢查询,怎么解决?
13.每天的增量数据大概是多少?
14.当前一些同步的工具和性能有受到一些影响吗,这边有做一些什么优化吗?
15.mq如何避免重复消费?如何避免消息丢失?(这是自己引导面试官问的,已准备充分,子弹充沛,突突就完事了)
16.线上环境的垃圾收集,jvm参数是怎么配置的,如果要求响应速度比较快的话,应该用什么垃圾收集器?
17.根据线上GC频不频繁,从而定位一些问题,如何查看GC频不频繁这些问题(比如说GC多少次,GC的频率)?
18.线上环境有遇到过代码上的一些死循环,和一些内存OOM的问题吗?怎么去排查解决的?
19.有这样一个场景,有一些数据,这些数据大部分相互之间是独立的,处理不存在依赖,目前是单线程去处理,如果想要更快的处理这些数据,应该怎么做?
20.如果使用线程池去处理,就是希望能够较快的处理,当线程池的线程用完了,希望能够降级成单线程处理,应该怎样去配置线程池。(不希望出现线程池的线程用完了,而导致其他任务没有处理,出现丢任务的情况)
21.介绍一下项目的结构和项目中大数据平台的搭建,然后说说为什么这样做?
(一般这样问,主要是问一些技术的选型,为什么这么选,比如:为什么用zookeeper做hadoop高可用,而不用redis等,可以准备一下zookeeper和redis的优缺点等比较)
22.spark数据倾斜,有做哪些处理?
23.jvm调优了解吗?
24.mysql事务隔离级别了解吗?
25简单介绍下spark streaming(这个完全没看,直接说不太了解)
26.hbase简单介绍下
27.数仓的用户漏斗转化了解吗?
28.sparksql出现数据倾斜如何排查
29.同一用户登录多个平台,如何确认是同一个用户的行为;
30.mysql索引了解吗
31.
32.为什么用zookeeper做hadoop高可用,不用mysql或者redis?
33.数据仓库建设中,有没有涉及一些中间表的创建?
34.hdfs简单介绍一下
35.hdfs再hadoop2.x版本中为什么是128m
36.hdfs写满,如何去处理
37.用户下单之后,会进行出库操作,然后运输,把货交到客户手中,问了我用户如果没有收到货,然后怎么去跟踪这个问题?(项目相关,围绕这个问题展开了很多项目相关的)
二、杭州同花顺
一面
1.项目的人员结构是怎样的?
2.介绍一下你负责的模块项目的具体逻辑流程
3.实时分析和离线分析的区别?
4.hashmap和hashtable的区别以及原理?
5.hashmap使用需要注意的地方,会踩哪些坑?
6.讲一下java反射机制?
7.简单说下spring依赖注入的原理
8.arrayList和linkList的原理
9.spring和springboot的区别?
10.有没有遇到像淘宝秒杀这样的业务场景?这样的场景关键之处是什么?
11.说说java内存机制
12.docker了解吗,简单说下?
13.说一说生产中常用到的linux命令?
14查看端口占用情况是什么命令?
二面
1.spark中产生shuffle的算子,除了
groupbykey,countbykey,reducebykey,还有哪些?
2.宕机的namenode怎么恢复
3.hadoop集群的权限配置是怎样的?
4.hadoop集群的维护过程,做了哪些工作?(调优,数据倾斜都可以答)
5.保证线上hadoop集群的正常运行,采取了哪些措施?(hadoop高可用的知识点)
6.spark进行计算与分析的过程中,有没有遇到一些性能问题?
7.hadoop高可用架构中,zookeeper是如何进行主备切换的?
8.有没有处理过线上问题,举个例子简单说下?(这个得准备下,展现真正的技术的时候到了)
9.hive提交hql语句到hive上执行的方式以及区别,为什么这么做?
10你单独负责维护和搭建了这些大数据组件中哪一些?(准备了容易得高分)
11.你对hive做了哪些维护工作?(调优和数据倾斜)
12.spark2.x与spark1.x的内存管理方面有什么区别?
13.写spark任务的一些参数的设置依据是什么?
14.每次提交spark任务,有设置动态资源分配吗?
15.namnode的内存管理简单说下?
16.spark中stage的划分依据是什么
二轮面试没抗住,卒,主要是自主发挥的题没准备,准备了的话,其实面试官提这些问题的时候,可以往自己熟悉的方向回答,面试官也比较愿意顺着你的回答深究,这样自己就比较能把握面试的主动权了,这也是后面其他面试才慢慢熟练运用了这种常规操作。
三、字节面试
一面
1.spark调优,spark数据倾斜体现在项目中,具体在哪些场景出现了?
2.订单服务,仓储服务以及其他业务模块之前是怎么进行关联的?是通过消息队列异步的吗?
3.sql中row_number和rank的区别?
4.负责的模块中,你主要做了哪些工作?
5.订单的整个流转过程?
6.rabbitmq怎么避免重复消费?
7.rabbitmq中怎么去通过消息日志判断消息被消费了,简单说下过程。
8.你觉得你工作中有哪些方面能做的更好?
算法题:
给定一个整数数组,判断这个数组是否可以重新分组,使得每个组内的元素个数为w,且这些数字是连续的数字。
二面
1.项目中数据仓库是怎么分层的?
2.怎么保证数据仓库每层之间的数据完整性?
3.原始数据层中,用于存储原始数据的hadoop高可用架构的主备namenode节点之间是怎么保证数据同步的?
4.为什么要将主节点的写操作对应的editlog文件放在共享文件中,而不是直接让备节点去主节点中拉取文件同步呢?
5.namenode主备同步的共享文件保存在哪里?在主备节点还是另外一台机器?
6.namenode主备同步的共享数据文件是怎么保证高可用的?
7.数据仓库中层与层之间,怎么保证某一层数据出现变化,该层的下游能够感知到?(数据血缘)
8.产品问你,你通过sparksql计算出的数据,如何保证是正确的,该如何回答?(数据质量如何保证)
9.spark的计算过程是怎样的?
10.sparksql转化为spark的具体任务,转化的过程是怎样的?
11.spark计算过程中,没有使用会产生shuffle的算子,会产生shuffle吗?
12.写sparksql从hive中获取数据,如何解决一次性获取大量数据加载进spark节点内存,从而导致网络传输带宽压力过大的问题?
13算法题
M * N 的矩阵。
例子:
3 * 5
1 2 3 4 5
3 4 5 6 7
2 3 4 5 6
特征:每一行是单调递增的。
目标:尽可能快的找到整个矩阵中第 k 小的数字。
二面卒,前期没有准备好算法的训练,投的太早,建议还是小公司先面,大公司往后放放。
四、杭州贝贝
1.spark sql和hive sql的区别
2.从原始数据层获取数据,数据丢失的情况有没有遇到过?
3.kafka消息丢失,如何发现这些问题以及如何处理?
4.项目中用到的kafka的topic,以及一些相关的历史天数之类的参数是怎么去设计的?
5.kafka消息队列的消息一般会保存几天?
6.datax了解吗?
7.sparksql和hivesql的语法上的区别有哪些?举例说明
8.hivesql的查询语句中有select,from,join,order by group by的执行顺序是怎样的?
你遇到hive中哪几类数据倾斜,以及如何解决这些问题的?
9.hivesql的行转列的语法上是怎么实现的?
10.找出连续三天及以*问网站的用户
四 哔哩哔哩(b站)
1.进程、线程间如何通信
2.Hadoop高可用简单介绍下
3.集群规模,你们订单表全量数据有多少
4.JVM垃圾回收算法那些、标记算法哪些、根据哪些指标选择垃圾回收器。
5.项目中哪些场景有Spark数据倾斜
6.MySQL中订单数据表如何进行分库分表
7.Sqoop 读取MySQL数据导入HDFS 的流转过程
8.如何感知订单表变化数据导入了HDFS
9.订单表导入HDFS后是如何进行分区的。
10.MySQL中订单表总共数据量多少T, 实际行数有多少?
总结:没答好,卒,总结了一波,这个岗位偏数据平台建设和开发,没准备太充分。
五、阿里面试
一面
1.hive数据倾斜有哪几种?举例说明
2.数据采集方式是什么?
3.数仓是如何分层的?
4.数据应用层对外使用的话,是通过什么方式去使用的?
5.数据应用程序指标的设计过程是怎样的?
6.能举例说下进行过深加工的指标设计流程吗?
7.指标的设计有参与过吗,通过什么方法去分析数据,从而确定指标的口径?
8.hivesql行转列和列转行
9.hadoop的读写原理
10.hivesql的解析过程
11.hive执行流程
12.hive自定义函数是怎样的?
13.有一张事实表,有一张维度表,我现在想创建一张宽表,通过选择表的一些字段去自动生成sql脚本,有没有尝试这样的方法?
14.用户漏斗转化的过程了解吗?
二面
1.怎样保证数据仓库的数据准确性,数据稳定性,什么方法可以监测数据是否准确?
2.谈谈你对数仓的理解
3.数据仓库从0到1怎么建设
4.针对数据应用层各种统计口径,数据服务层怎么设计?
5.项目中有没有建设指标系统
6.spark数据倾斜有哪几类?
7.spark的shuffle过程?
8.日志数据的收集形式是怎样的?
9.数据质量监控用的是什么工具?
10.数仓的数据模型有哪几种?
三面
1.已知的实时架构有哪些?
2.你对数仓的理解,从0到1建设数仓的过程
3.主要从哪些方面去做数据质量检测?
4.数据质量的精确性方面能举例说明吗?
5.数仓中的数据唯一性怎么校验?
6.数仓中的元数据管理,管理的是什么形式的数据?
7.数仓进行数据监测,有什么措施?
8.范式模型和星型模型的各自优缺点是什么?
9.有这样一个场景,一张表中有三个字段,学生id,班级编号,学生的语文成绩,如何求出每个班级的学生语文成绩的平均分,平均分的计算去除最低分和最高分,用一条sql计算。
总结:阿里面试下来,总的来说主要是离线数仓更多,我主要准备的也是离线数仓这些,也期待你有一些工程化的经验,所以还算顺利,到了第三面问一些实时数仓相关的,就说不了解了,还算比较顺利通过。
推荐阅读:
--end--