阿里:时间: 2020年3月26日
一面阿里一面的时候,刚刚开始复习。Python Java等等都还没看。只看了下大数据相关的知识。凉的明明白白。
-
写一道算法题,旋转数组求最小值(剑指offer面试题11)。当时只记得是二分查找,没写出来。
-
问下Java GC (不会)
-
问下Python GIL(不会)
非常感谢这位老师,面试之后就不再觉得自己很厉害了。我知道自己还有太多要复习的了。自己还是把面试想得太简单,周围牛人太多了。
360一面 43min:
2020年4月8日
-
自我介绍
-
问了两个项目, 问了下项目中如何实现的Mysql和hdfs数据同步
-
讲一下对Hadoop的了解 讲了下HDFS原理、MapReduce的过程,想讲HDFS检查点机制没让讲。
-
Spark和MapReduce的区别?是不是用了Spark就不需要MapReduce了?(答得不太好)
-
问对Hive的了解? 自己提了下数据倾斜
-
如果有海量数据,如何求Top10?(说错了一块,后来又改过来了)
-
Linux平常用的指令?说了 ls 、 ll 、 df 、 nohup & 、ps 、 kill 等等 Hadoop用到的指令 Hadoop fs -ls 、 mkdir、 hdfs fsck(查看块信息)
-
用什么语言比较多? (我用的py比较多) Python常用的数据类型? list 和 tuple的区别? 回答了下 不可变对象和可变对象
-
常用的python库(requests 、bs4 、keras 等等)如何安装包
-
算法题:数组去重 上台阶、动态规划和递归的区别
-
还有什么问题要问我吗?(问了下缺不缺hc、主要工作内容)
二面 23min
2020年4月15日 全程问项目,同时问了很多有没有看过Spark 源码 ES源码 Flask源码(都没看过)。 各个项目问的比较深,算法模型等等。
HR面 30min
2020年4月20日
-
可以实习多久
-
如何解决做项目和社团和日常生活的平衡问题
-
简单介绍下流计算的spark streaming storm flink的优缺点
-
未来发展等等
腾讯是找了内推,后台开发,但是与大数据相关。面试都在腾讯会议,一面手撕代码是屏幕共享,二面手撕代码在腾讯文档。
一面
2020年4月23日
-
自我介绍。
-
Spark和Hadoop的区别
-
MR流程、RDD流程
-
new malloc区别 epoll原理看过吗? 讲一下多态
-
写到算法题吧:二分查找,写一下旋转数组最小值(又是这道题。我说这道题之前做过,面试官没再让我写)。
二面
2020年4月28日
-
自我介绍、在家里?没开学?
-
学过Hadoop,讲一下MR流程。说一下Partition分区的优化是怎么做的(Partition没答出来) MR会有数据倾斜,讲一下如何解决(说了一些方法,被要求说的更详细一些。比如为什么增加Reduce数量就可以提高效率,如何自定义分区,如何重新设计key)
-
然后问的是Hadoop Streaming (没听说过,讲了下spark streaming)
-
看简历上有个socket项目,问如何讲一下流程,问如何从socket中提取数据(时间太长,完全记不清了)
-
写个算法题。 给一个树,每个节点的val都有取或不取两种状态。限定条件是,直接连接的节点不能同时取或者不取(比如父子节点) 想的是分成四次递归。问如何剪枝。没答出来
-
上面那个题没想法了。那咱们换个,给一个二叉树和两个节点 a ,b 找出二叉树的最近公共祖先。(剑指offer原题 最后一题)
平时大部分都是Py Java Scala开发,很少用C++,就很难受。还需要多学习啊。
字节跳动一面
-
自我介绍
-
介绍项目:详细项目中介绍下深度协同过滤算法,和mysql与hdfs同步的策略
-
写两个Mysql ① 给出两个表,计算left join的结果 ② 一个广告的表,包含广告的id,广告的开始时间,广告的结束时间,给出一个时间(比如2020-03-02 —— 2020-04-02)。所有与这个日期有交集的广告id.
-
写两个算法题 ①写个层次遍历 ②写个排序数组中查找k这个数出现的个数 (我用了二分查找,然后向前向后搜索)
-
Spark会吧。介绍下宽窄依赖。(从action 讲到 shuffle ,讲了Aggregator,讲了下DAG解析的阶段划分)
-
Hive会用吧。讲一下内表和外表的区别
-
学过Mysql,讲一下索引的数据结构吧(自己说了下聚集索引和非聚集索引)
-
还有 sql 各种join之间的不同
二面
-
自我介绍
-
写个题目吧 把一个数字转换成汉字 比如1001 “一千零一" 用了递归但是写的太复杂,有点拉分
-
讲一下你觉得最难的两个项目
-
Spark cache和 persite的区别(讲了下广播机制,没回答好)
-
你未来想学些什么(简单说了下Flink 、 Spark源码和参数服务器)
-
还有什么问我吗
HR面
自我介绍
想实习多久
未来读研吗
来北京租房吗
父母对来北京的意见
你觉得自己有什么缺点 (最后说了个自己熬夜多 )
总结感觉自己的技术还是有很大不足啊。自己的复习的路线是:
语言: Python、Java、scala面试题
计算机基础:计算机网络、操作系统和数据库(索引是重点)
大数据相关:Hadoop、Spark、hive、hbase、flume、kakfa、storm等
算法:主要是刷了一下剑指offer。
快手大数据平台研发面试经验牛客平台,视频面试,50分钟。
-
JVM比较了解是吧?哪些阶段会有STW,举例说明。
-
什么情况下会有full GC,举例说明。
-
并发编程了解么?什么是可重入锁?具体例子说明,底层原理。
-
volatile的几个作用?详细聊一聊。
-
事务的隔离级别?怎么解决脏读,幻读?
-
Linux中的epoll、select这些了解么?聊一聊。
-
什么叫TCP/IP 的粘包、黏包?如何解决?
-
如何实现零拷贝?具体方式和原理。
-
MapReduce全排序的实现?详细说一下。
-
mapjoin的作用是什么?为什么会有mapjoin?
-
算法题:30亿long型整数且都是唯一的,最大值不超过70亿,只有2个G内存,实现30亿个整数的全排序。
-
写一个线程安全的单例模式。
-
static内部类和非static内部类有什么区别?
-
反问,大佬气场很足,从这个岗位的前世今生给我整个讲了一遍,受益匪浅,十分感谢面试官!
这次面试收获不少,大佬一次次深挖也暴露了不少不足。凉凉了。
阿里菜鸟网络数开二面面经一如既往,电话突击面试,大概持续一个小时。
1.自我介绍
2.大数据项目
3.spark和mapreduce比较(spark有弹性,高度利用内存,简化代码,DAG写起来可以绕地球两圈,不像mapreduce一次reduce提交一次)
4.传统关系型数据库和hdfs比较(前者轻量级,侧重实时操作;后者重量级,分布式,分而治之化整为零,横向扩展性好)
5.map join实现?应用场景?两张大表怎么选?(通过广播大变量;一般用在大表join小表,可容忍小表数据冗余的场景;两张大表就分而治之,再sort merge)
6.输入网址到返回网页的过程(域名解析,tcp连接建立,数据传输,数据回传,渲染,显示)
7.sql这块如何(没有注重语法的掌握,表示日后工作用到会熟能生巧,重点学习了理论,索引原理,并发这一块儿)
8.hashmap深挖,和treemap比较,put,get,扩容,并发问题,rehash?
9.非科班吗?自学方式说一下?
10.最近读的一本计算机方面的书?(操作系统原理)
11.聊聊操作系统原理,线程,进程?操作系统内存管理(这块儿初学,招架不住,就举了白旗:您刚说是最近读的,所以我才看了一小部分,还没有深入理解)
12.你在原专业学了这么多年(本+硕),选择转行不可惜吗?
13.实习地点选择。
14.未来学习方向规划。
15.最后问一个比较尖锐的问题。你学了这么多年土木工程,最后选择转行计算机。你怎么保证你进了计算机行业以后不会又转行?(...总算圆了过去)
16.会和一面面试官交流你的情况,等通知把。
面试官前辈人还是很好的,我发言的时候很尊重,说偏了也不会打断。他很好奇我非科班转行的历程,所以这一块儿和我多交流了一下。期待能有下一面,祝好运。
1、数据仓库的理解以及数据的架构
2、一道SQL
3、Spark原理
4、数据结构
5、数据倾斜
6、幂等操作
7、网络七层模型在5G中的变化
8、介绍HDFS
9、一道算法题
10、hive创建表使用的什么分隔符
头条大数据一面面经自我介绍 项目介绍 kmeans聚类数据量小的时候会出现什么问题
项目用到了spark的哪些组件
是否熟悉Linux
list下都有哪些类 arrayList和LinkedList的区别
HashMap是怎样散列的,怎么解决冲突
http协议 客户端是怎样与服务器建立连接的 响应码
编程题判断括号是否匹配,如"{[]()]}"
字节大数据开发岗面经一面 3.30 50min
1. 编程题:二叉树层序遍历,按层换行输出。
2. 线程的状态及状态之间的装换
3. 有哪些树结构
4. B+树的特点
5. HTTPS的工作流程
6. Kafka如何保证生产者不丢失数据,消费端不丢失数据
7. Zookeeper的功能, 详细介绍一下zookeeper的消息的发布订阅功能
8. 场景题:如何从百亿条IP信息中得出访问量前10的IP地址
9. Redis支持的数据结构
10. Redis为什么性能高
11. Redis为什么是单线程
二面 3.30 47min
1. Spark源码中的任务调度
2. 场景设计题:你自己如何设计一个分布式系统,实现对百亿条数据进行分组并求和
3. Spark shuffle机制
4. spark中有哪些算子会进行数据shuffle
5. 编程题:一个数组有正数有负数,调整数组中的数使得正负交替
例:[-3, 6, 7, -4] ->[6, -3, 7, -4]
三面 4.3 25min
1. 编程题
2. 当前面试流程中(牛客网)涉及到了哪些协议
3. 学习中遇到的难点,如果以后同样有人遇到了这些你会怎么快速地教她解决。
字节跳动data部门三面字节
一面(60min)
自我介绍
说一个自己做的项目
spark和hadoop的不同之处
spark为什么快?
说说自己对spark和hadoop的理解
hadoop里的namenode和datanode
spark的lazy体现在哪里
Yarn相对于hadooop的不同在哪里
hdfs数据存储
二叉树层次遍历
子序列的最大和
valitile关键字
c++里棱形继承
描述堆排序
基数排序过程
二面(50min)时间太久有点忘了
自我介绍
pagerank算法
spark与hadoop对比
hadoop的特性 特性对应在hadoop里的发挥
hadoop恢复如何恢复
yarn的改进在哪里
spark的stage划分
spark相比mapreduce的优点
最小逆序对
三面(30min)
自我介绍
介绍一下mapreduce
mapreduce和spark区别
进程和线程的区别
进程通信方式
网络结构以及每层应用
打开一个网页的过程都经历了什么
栈的push和pop的时间复杂度
栈的最小值操作
期望地点是上海吗
有什么要问我的
作者:❄狂乱贵公子✴ 链接:https://www.nowcoder.com/discuss/412494 来源:牛客网
字节一面挂:
1、合并两个有序链表 2、二叉树的中序遍历 3、16G处理1T数据 4、操作系统的进程与线程 5、虚拟内存 6、java多线程的锁
蘑菇街一二面挂:
主要是考java, java内存模型 java对线程 java保证线程同步 java垃圾回收 如果会flink也会详细问
不建议去
小米三面:
二面: 1.spark用什么语言开发 2.数仓 3.flume 4. hadoop小文件问题 5.sqoop遇到的问题 6.sqoop如何导入半结构化数据到hbase 7.hbase的rowkey设计原则 散列原则是怎么做到散列的 8.dataX和sqoop区别 9.reducebykey 、groupbykey、combinebykey 、agergetbykey 10.数仓的分层 11.有么有数据质量管理 12.合并有序链表,空间复杂度O(1) 13.求连通图
三面: 一道编程题: 模拟退格键: 输入:“acdOperatorTree(操作树)->优化后的操作树->mapreduce任务树->优化后的mapreduce任务树 4、Hive HDFS HBase区别 https://blog.csdn.net/wshyb0314/article/details/81475475 5、列式数据库和行式数据库优劣对比 http://stor.51cto.com/art/201809/583648.htm 6、维度和度量 是数仓非常重要的概念,简单地记,维度是环境,度量是指标或者是衡量 7、数仓分层 8、窗口函数的实现原理 说实话我也不知道,也没查到,是partition的时候实现的吗,当时是这么猜的。 9、工作中遇到的挑战 10、最近看的书
数据技术与产品部 一面池子里泡了一个月,一天晚上突然又被捞起来面了四十多分钟,当时还在公司,找了个楼道,站着面完,都要昏厥了。
1、也是介绍数仓分层,主要问了实际构建事实表时候的思路。关于如何确定要包含哪些事实——需要结合业务过程来选择,因为实习的这边通过数据需求平台接数据需求,所以会有记录,一般做沉淀是可以挖掘出关注的关键事实。这里问的不是事务,是事实。
2、问了下数据分析相关的工作,这个刚问的面试官都会问问这些,怎么通过数据给业务赋能之类的,所以准备点数据分析的例子肯定会好一些。
3、数据质量如何保障。也是这个岗经常被问的问题,我一般这么回答:(1)和产品运营经验值校对 (2)对hive元数据实施监控,例如行数,表大小,空缺值 (3)对核心指标实施监控 (4)关注数仓血缘关系 (5)尽可能在聚合层生成通用指标,不要再最上层再计算指标
二面可能之前算上实习面试面的太多,面试官问的不太多了。
主要的问题是数仓域方面的
1、域如何划分 每个域应该对应一个完整的业务流程,一个业务流程一般划分在一个域里面。
2、域的边界如何确定 个人觉得还是应该从业务出发,分析主题域,感觉问题有点太专业了,没有答好,也没查到什么好的答案
还让介绍数据结构,所有常见的数据结构,知道的,能说多少说多少。
交叉面面到这已经七面了,面试官已经没啥问题了,听了自我介绍后,我把这个部门写的《大数据之路》狂吹了一遍,然后围绕这书聊了二十分钟就过了。
HR面这HR也是技术出身,半个小时感觉还在面试一样。
问了数据建设方面的一些宏观的问题,问了对数据工作的认识。
美团-数据开发工程师 到家事业群-外卖 一面问的不多,主要在自我介绍,可能刚好在做转正答辩的PPT,提前讲了下,就过了。
二面主要的问题包括:
1、缓慢变化维处理 用快照或者拉链,拉链时间段也有讲究
2、数据流(实时数据流-离线数据流),面试官也分享了美团的数据流,人很好
3、问了一些德鲁伊、clickhouse、flink、kafka相关的问题,不过我对实时数据流那块不太熟,也没问太多
4、如何通过埋点还原用户路径 用相对时间、透传参数
5、Mapreduce的流程
三面大佬,没有太多技术性问题,感觉再聊天。印象比较深的是问了一个产品的数据需求不合理时如何应对和数据质量保证的问题。
拼多多-大数据研发工程师 数据中台 一面半个小时
面试官一直在纠结埋点是数据开发写还是产品写,我们是开发写,然后给客户端埋,不同的公司可能收口的地方不一样。
灵魂拷问:维表用来干啥。 (1)记录大量信息,事实表将与维表关联 (2)环境的信息在维表中维护就可以了 (3)事实表也可通过维度构建起关联
二面很专业
1、关于星形与雪花 记住一点就行,所有维表直接与事实表关联的就是星形
2、缓慢变化维处理
3、如何划分数据域
4、单事务事实表、多事务事实表区别与作用
5、一致性建模 一致性维度、总线矩阵
6、一致性事实 这个有点牛逼,其实本质上就是指标的统一
7、快照事实表、累计事实表、多事务事实表 区别
8、SQL
考察了concat_ws 、laterview explode 函数的一些运用
华为-分布式数据库开发 主要考察的基础,因为我实在不太行 一面主要是自我介绍和聊天
唯一的算法题 LeetCode516 最长回文子序列 https://leetcode-cn.com/problems/longest-palindromic-subsequence/
二面主要讲了数据流
唯一的算法题 LeetCode215 最大的K个数 https://leetcode-cn.com/problems/kth-largest-element-in-an-array/
三面也是对实习问的比较多。
唯一考的智力题 动物过河 https://www.zybang.com/question/749d70d935eb63fad27fcec9b93ccb60.html
网易游戏-游戏数据研究员 整体是偏向业务的数据分析 一面1、列举一个数据分析的例子 (问题提出-问题拆解-产品运营改进-数据效果提升,有实际例子)
2、分析MOBA英雄平衡性
3、一张表有玩家的id 登陆时间 登出时间 等级 能算出哪些信息
dau、留存、新用户数、平均等级、升级时间分布、登陆时间分布、登出时间分布、游戏时长、平均登陆次数
4、玩过哪些游戏
5、Python用过哪些包
6、对hive的理解
二面1、举一个数据分析的例子
2、分析下率土之滨优劣势 从gameplay和数据分析两方面讲了下
3、率土之滨各州的平衡性如何衡量 主要从两个方面 玩家数据 游戏资源数据, 讲的时候没注意,实质上有交集。
玩家数据:玩家人数、玩家势力值、玩家活跃、玩家付费
游戏资源:占领土地数量、玩家五星卡牌以及卡牌组合、玩家五星战法、玩家战法经验等
4、怎么通过数据分析帮助州与州之间保持平衡
网易严选-数据分析 一面1、讲一些常见的机器学习算法
2、举一个具体分析的例子
3、主成分分析的原理
4、Python数据类型有哪些
5、Hive了解的程度
二面主要的一个案例:如何衡量PUSH的效果 通过PUSH发出后一段时间用户的登陆情况来衡量
不过PUSH主要的指标一般是这样的:送达率、点击率、转化率
要做好一个PUSH还是要个性化,做好频控,可以开AB
HR面网易让我免费去了趟杭州,当天上午去西湖玩了半天,杭州挺好的。
HR挺帅的小哥,也很专业,围绕数据工作问的,对数据工作的认识、和产品运营的交流方法问了半个多小时。
最后挂了。
滴滴 一面1、这个面试官出了个得写udf|transform的题目让我用hql写出来,我想了半天什么都上了,最后告诉我要写udf,服了。
2、mapreduce的过程
3、hive语句转化成mapreduce的过程
二面1、mr环写内存的时候怎么提升效率
2、维度进行垂直整合的时候怎么使得信息更多,使得维表更全,本质上还是要拼key
三面比较宏观,好多问题忘记了
小米相对而言比较简单,和之前的问题应该大部分重合了,唯一不一样的题可能问了个智力题。智力题常见的就是:毒药、赛马、剪绳子之类的。