本文主要是介绍10篇校招/社招面经请你查收~,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
点击上方蓝色字体,选择“设为星标”
回复”面试“获取更多惊喜
目前各大公司的校招已经启动,相信很多小伙伴有和我当年一样的困扰。国内高校开辟大数据相关专业正好一个毕业季过去了,那么作为一个科班出身的学生,该怎么准备校招呢?
本文是在和读者交流的过程中,在网络上搜集到的一些面试资源,只要自己掌握方法并且准备充分,其实很容易在面试中脱颖而出。
其实当时的我也非常发愁,觉得自己什么都不会,又不知道该准备些什么,走了不少弯路。在收集面试资源的同时,也发现同样作为95后,现在的学生面试的眼界和能力都比2-3年前强出很多,但是基础知识会稍微差一些。大概也是因为网上太多的这个实战、那个实战内容太多了,反而基础知识准备不充分。
小米/字节/阿里
Hadoop
1.介绍下Hadoop(字节.好未来)
2.mapreduce处理流程/shuffle过程(阿里.好未来.网易)
3.Yarn是怎么工作的(小米)
4.mapreduce和hdfs是一体的吗,有什么关系(阿里)
5.数据倾斜是如何产生的及解决方案(阿里.字节.小米.网易.好未来)
6.mapreduce有几种join(字节)
7.Hadoop的HA
Hive
1.内部表和外部表的区别(字节.好未来)
2.数据仓库的分层(小米.好未来.网易)
3.星型模型和雪花模型的选择(字节.好未来)
4.数据仓库和传统数据库的区别(好多都问了)
5.接上问,维度冗余及三范式(字节.好未来)
6.hive数据存储格式.压缩格式,区别(好未来)
7.HQL执行慢是怎么解决的(字节.阿里.小米)
Spark
1.job.stage.task的关系(小米)
2.spark任务提交过程(阿里.小米)
3.spark常见算子(小米)
4.spark shuffle和mr shuffle的区别及优化
5.spark容错机制(阿里)
6.sparkSQL的几种join实现
7.介绍下sparkstreaming
8.spark RDD的理解
Flink
1.spark streaming和flink的比较(小米)
2.flink的状态(小米)
3.flink的容错机制.状态一致性(阿里)
4.讲述一致性检查点的实现——分布式快照(阿里)
5.flink的watermark.窗口机制.时间(小米)
6.flink的运行构架
Mysql
1.索引相关,b+tree(阿里)
2.建立索引的考虑因素(使用频率.联合索引.索引顺序)
3.聚簇索引.覆盖索引与回表查询
4.索引失效的情况,如何知道索引是否被用到
5.什么是事务,事务并发带来的问题(脏读.不可重复读.幻读)
6.ACID.隔离级别
Kafka
1.kafka的文件存储机制
2.kafka的可靠性保障 1)生产者往broker发送消息(副本数据同步策略.ISR.ACK) 2)topic分区副本 3)leader选举
3.kafka一致性保障
4.如何保障数据有序性
5.kafka和传统消息队列的区别
Redis
1.redis的优缺点
2.redis的数据类型
3.为什么redis效率高
4.redis主从复制过程
5.AOF.RDB的优缺点.适用场景
6.redis的过期淘汰策略
7.缓存雪崩.缓存击穿及如何解决
Java基础
这个写起来就太多了,基本包含了Java的基础知识、JVM、多线程等等。
开放型问题
1.谈谈对大数据处理思想的理解(可以围绕分而治之、计算向数据移动展开)
2.谈谈对大数据体系演变的理解(阿里)
3.你觉得未来大数据体系的变化可能是怎样的(阿里)
4.如果你的抖音突然卡住了,会是因为什么(字节)
算法
笔者不是算法大神,剑指offer刷过两遍,整体回顾过四五次,建议每次面试前将j剑指offer 链表、二叉树、栈和队列、动态规划、递归及回溯 的题目都分块回顾一次,链表的题一般用虚拟头结点、步长差解决。
二叉树的题目一般要么和遍历有关,借助栈和队列,比如镜像和对称二叉树、求深度、之字形打印...都相当于在遍历中加入判断条件;要么用递归及回溯思想解决,比如树的子结构,最低公共祖先、和为某值的路径等题目。
动态规划思想我认为是维护一个状态,关注点就在目前状态和新进来的数据上面,然后进行比较和状态更新,需要多练习找感觉。
另外排序算法也要熟悉,冒泡啥的不说了,快速排序、归并排序也要可以直接写出来。算法练习过程中注意思考多种方法解题,字节面试中有遇到追问第二种方法解决问题。
字节
一面
维度建模 :确认主题、确认粒度、确认度量、确认事实表、确认维度表
Hive shuffle 和 spark shuffle的区别
Spark 为什么快?Spark任务是怎么执行的
转化率如何计算
缓慢变化维怎么处理
Flink状态
Flink窗口
Flink广播流
二面
Hive count(distinct)有几个reduce 海量数据会有什么问题
Spark优化
Flink 精确一致怎么保证
Flink 实时topN
Flink 写入redis怎么保证精确一致
Spark hive 用过的解决数据倾斜的方案
事实表分类
累积型快照事实表做法
三面
Hdfs读数据流程 源码级别(要回答出来 rpc)
Hdfs写数据流程 源码级别(要回答出来rpc)
Mapreduce shffule原理 源码级别(要回答出来锁 多线程 以及缓存写磁盘交换)
数仓为什么要分层
实时比起来离线 要注意啥
特征挖掘是怎么做的?怎么管理的
Shopee
一面
自我介绍(要求重点介绍项目)
怼项目(重点在于Hadoop相关部分)
Hadoop相关问题的延伸(HDFS写数据流程,要求越详细越好)
如果要实现一个HashMap怎么做,算法复杂度多少
手撸快排。(有思路没撸出来)
面试要求尽可能的说出细节,但是我只能大概说出来一些设计原则
由于实习的时候用过 clickhouse(其实就当关系数据库存储了一下数据),所以面试官让我讲讲 clickhouse,我给小姐姐说明我只是当数据库用的之后,她就只让我说了 clickhouse 有哪些特点?
对 java 熟悉吧?JVM 的内存结构?
volatile 关键字的作用?
说说 MySQL 的索引?b树与b+树的区别?
Redis的应用场景有哪些?Redis支持的数据结构?
40亿条数据,内存只有10G,如何确定一个数是否存在于这40亿的数字里面?
Spark的作业运行流程是怎么样的?
Spark处理数据倾斜的方法?
Kafka作为消息队列,它可解决什么样的问题?
Hive的文件存储格式都有哪些?
HQL:行转列、列转行
HQL:一张表字段有 id,name,date,其中id有重复,问如何拿到最新的date对应的id的name?
ZooKeeper 如何实现分布式锁?
了解Linux吧?如何查看占用CPU最高的进程?
算法题:用栈实现一个队列,提供入队、出队方法?
二面
namenode的主要职责,元数据的形式
介绍namenode宕机的恢复过程
namenode启动时datanode向namenode的心跳报告内容
block划分的原因
HDFS写数据流程
一个多线程代码,判断是否会跳出线程。(主要考察线程中对类静态成员变量的访问)
linux bash,一行命令,输出文件中某关键字的出现的行数
三面
一个线程生成key-value对,另外一个线程合并相同的key对value求和
SQL语句,合并表里相同人姓名的成绩求和
最后linux bash脚本求去除表头后第二列值的和
sql:用户连续登录问题
sql:求平均成绩大于80,且0001课程分数高于0002课程分数的学生id
数据倾斜问题
jvm内存中,堆和栈的区别?
Objects类中的通用方法?其中hashCode方法的返回值是什么?
如何创建一个线程?使用线程设置堆大小?
jvm垃圾回收机制?
算法:二叉树的镜像
内存只有256M,有两个10G的文件,从这两个文件中找出相同的数字?(只说思路)
大概就是这些啦,后边要是想起来其他的,会来更。
腾讯
一面
自我介绍
在工作中负责的内容
数仓分层
Spark 任务遇见过哪些问题?怎么解决的
维表和事实表
事实表有哪些种类
项目组有哪些人,什么指责
有多少张表,是怎么管理的
sql题
join 时 on 和 where 语法
用户连续打卡天数
二面
主题是怎么划分的,从那一层开始,为什么
维表和事实表
事实表有哪些种类
数据质量是怎么保证的,有哪些方法保证
怎么衡量数仓的数据质量,有哪些指标
离线任务遇见过哪些问题,怎么处理的,如数据迟到、数据重复
怎么保证数据的一致性
数据仓库和数据中台区别
数据仓库中有哪几类数据建模
对于缓慢变化的数据,在数据仓库中是如何处理的
如何建立用户画像指标的,如何维护
如何实施数据清洗的?从哪些方面着手
如若提供出去的指标有问题,如何解决和定位
美团
一面
1 自我介绍
2 介绍一下数学建模竞赛,做了什么、遇到什么问题、怎么解决的
3 做了几道SQL题
4 常用的操作系统命令
5 io占用很高怎么解决
6 MySQL索引
7 mapreduce原理
8 说说shuffle
9 数据倾斜了解吗,怎么优化
10 项目相关,数据为什么存到mongodb
11 hive了解吗
面试官人很好,建议我找点数据跑一下
二面
1 项目说说你具体做了什么
2 Java实现一个word count
3 改进一下写的代码
4 聊聊spark,spark你做过什么
5 项目里spark streaming用哪一个层面的接口,RDD,dataframe,dataset
6 说一下spark的DAG
7 spark的懒加载机制
8 hive常见的调优方法
9 分区分桶的逻辑
9 网络七层协议,通过每一层解决什么问题
10 Linux常见命令
11 shell写过什么东西
12 shell中管道的概念怎么理解
13 常见数据结构有哪些,怎么理解B树和B+树
14 MYSQL插入一条数据,索引的变化
15 敲键盘,屏幕显示对应的数据,这个过程计算机做了什么
16 字符集编码解码的原理
17 六个人围成一个圆桌就餐有多少种就坐方式?每个人点一道菜,一共有四种菜系,有多少种点法
三面
1 自我介绍
2 本科研究生学过什么计算机的知识
3 操作系统文件系统介绍一下
4 说说你擅长的吧,展开说说Hadoop,hive,hbase
5 Hadoop你搭建过吗,怎么搭建的详细说说
6 zookeeper搭建要配置什么
7 最近做过大数据的相关东西吗,说说你的项目
8 详细说说你建的什么表,rowkey是怎么设计的
9 HBASE适合解决什么问题
10 MySQL适合做什么,你对MySQL了解多少,说说建过的表
11 为什么项目里不把MySQL存的数据不存到HBASE
12 你用MySQL解决过什么实际问题
13 讲讲Java关键的语法特性
14 hashmap的key和value对于存储的实例有什么要求
15 用原始的数据类型实现一个list
网易
一面
1.自我介绍(3分钟)
2.介绍ETL开发项目(15分钟)
3.为什么数据存入hdfs还要再倒入NoSql,为什么hdfs对olap支持不友好。
4.spark任务执行全过程。
5.mapReduce对比spark
6.linux操作命令(没答上来,表示没用到过)
7.统计学中p值的意义,中位数的意义,和均值对比,使用场景
8.业务题:1.网易云课堂突然订阅量下降,怎么定位分析原因2.在各个平台投放简历,怎么评估效果。
二面
1.自我介绍(3分钟)
2.介绍ETL开发项目(15分钟)
3.介绍数据仓库开发,数据迁移项目(10分钟)
4.介绍机器学习项目,怎么和大数据开发做的结合(5分钟)
5.kafka结构,怎样防止脑裂,为什么最新版本不用zookeeper来维护offset
6.手撕代码,找出数组中第二大的数。
三面
1.自我介绍(3分钟)
2.介绍ETL开发项目(15分钟)
3.手撕代码:知道二叉树前中序遍历,怎么得到后续遍历,限时5分钟
4.业务题: 1.开发统计某app用户各功能使用时长,整个流程怎么实现,怎么优化,怎么横向拓展。2.统计评估各个网页的重要性,采取的算法思路,spark代码实现。(实际就是Google page rank算法)
四面
实习做的事
实习公司的技术整体架构
前后端,数据中心算法团队的协同配合
百度
一面
1.项目介绍
2.join的left join , inner join, cross join
3.MR
4.冒泡排序
5.维度建模三种模型
6.Awk
7.动态分区静态分区
8.数据倾斜
9.Join大小表
二面
1.项目介绍(深度挖掘,问到自闭)
2.Sql 取A、B两个表的交集,A表减交集,B表减交集
3.Sql 成绩排名前三的学生的情况
4.Sql 左连接的情况
5.二叉树查找
6.两个有序链表合并
7.Shell、linux常用的语句
8.工厂模式
9.mysql中myIsam,Innodb各自区别和使用场景
三面
1.手撕代码:两个有序数组的交集(写的有点错误)
2.动态分区
3.Linux常用命令
4.Spark数据倾斜、Spark血缘等
八千里路云和月 | 从零到大数据专家学习路径指南
我们在学习Flink的时候,到底在学习什么?
193篇文章暴揍Flink,这个合集你需要关注一下
Flink生产环境TOP难题与优化,阿里巴巴藏经阁YYDS
Flink CDC我吃定了耶稣也留不住他!| Flink CDC线上问题小盘点
我们在学习Spark的时候,到底在学习什么?
在所有Spark模块中,我愿称SparkSQL为最强!
硬刚Hive | 4万字基础调优面试小总结
数据治理方法论和实践小百科全书
标签体系下的用户画像建设小指南
4万字长文 | ClickHouse基础&实践&调优全视角解析
【面试&个人成长】2021年过半,社招和校招的经验之谈
大数据方向另一个十年开启 |《硬刚系列》第一版完结
我写过的关于成长/面试/职场进阶的文章
当我们在学习Hive的时候在学习什么?「硬刚Hive续集」
你好,我是王知无,一个大数据领域的硬核原创作者。
做过后端架构、数据中间件、数据平台&架构、算法工程化。
专注大数据领域实时动态&技术提升&个人成长&职场进阶,欢迎关注。
这篇关于10篇校招/社招面经请你查收~的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!