大数据开发方向分享:春招获蚂蚁金服、拼多多、华为(终端)、远景能源、华泰证券等offer

大数据开发方向分享:春招获蚂蚁金服、拼多多、华为(终端)、远景能源、华泰证券等offe

一、背景

2020届985硕士,投的基本是上海岗位,非科班转行大数据开发方向和Java后端开发。
参加了2020届春招实习招聘,主要投的是大数据开发岗位。
offer获得情况:蚂蚁金服、拼多多、华为(终端)、远景能源、华泰证券(Java)等。

二、学习方向

主要学习了Java基础和大数据开发框架。
Java部分:基础、并发、JVM、数据库(sql)
计算机基础:计算机网络、操作系统、Linux
Hadoop部分:MR、YARN、HDFS(部分源码)
分布式理论:Zookeeper、Raft
流计算部分:Spark、Flink、Storm/Jstorm
非关系存储:Redis、Hbase、Tair、Tbase
消息队列:Kafka
没有去深入学习Spring框架那一套,只是会使用,有些公司没有大数据开发岗位,所以投的后端开发,但是对面试影响不大,就说自己只学了大数据的框架。

三、面试记录

1、腾讯提前批(后台)
笔试情况:有笔试,最好做,要不然后面会视频敲代码
一面:电话面
上来先问清楚情况,能不能实习。想做这我们部门(方向)这方面吗?
1、jvm垃圾回收、内存管理、类加载机制;
2、linux指令:观察端口netstat、内存top、磁盘df、进程打开多少文件夹怎么看(我说了ps…不对,应该lsof )
3、数据库了解多少,索引说一下,存储引擎比较,热备份、冷备份。
4、进程间通信种类,最快的是哪种?
5、如何判断进程进程死循环?我说用心跳机制吧(应该用ps aux | more看cpu占比或者 用top动态查看)。
6、TCP建立三次握手。
7、select、epoll、poll区别。

二面:电话面
我竟然拒绝了面试官,因为我当前不想去深圳,但是也要面试下增加经验啊,以后还是有机会就面试吧。拒绝以后,就没人捞我了。还是太年轻。

2、蚂蚁金服提前批 (大数据平台相关)
没笔试
3月18一面
1、项目、天池比赛:心跳机制、数据丢失问题、进程通信,项目分工。
2、红黑树和跳表,数据库索引。
3、volatile作用,变量不断加一,是否能够并发加正确,非原子性。
4、hashmap线程安全实现。
5、spark RDD原理;
6、源码:hdfs写文件如何保证正确性;说下零拷贝模式。
7、kafka数据丢失问题。
8、spark数据倾斜怎么处理。
9、说下java里面的OOM
10、用程序实现栈溢出,我说的递归。
11、tcp如何解决丢包问题。
12、你觉得现在互联网未来技术点在哪里?

3月22二面
这一面有点紧张了,有不会的可以撤别的啊。虽然这个不了解,但是看过相关的。
本质上不看简历的,所以应该多说一些其他项目。
上来问实习,数据库同步回答的不好,还不如不写。
1、GC优化,程序中应该如何优化?
2、JVM Server模式与client模式启动的差别?
3、arraylist和linkedlist区别
4、concurrenthashmap中1.7和1.8的区别。
5、hashmap扩容方面做了哪些优化?我只答出了红黑树。
6、Synchronized是重入的吗?和lock区别,以及synchronized对于普通方法和静态方法加锁。
7、String和stringbuffer、stringbuilder;
8、数据库同步方案有哪些?考虑可能出现的事务问题。可以说说同步sql语句啊。这应该是开放性问题。
9、GC算法
10、数据库的隔离性问题,acid,脏读,不可重复读、缓读。
11、数据库select查询优化问题。
12、linux中数据怎么存储,关于数据块怎么优化存储。随机读和顺序读。
13、动态规划算法,你写过吗?我说写过leetcode上的问题
14、看过一些先进的论文吗?我竟然回答没有。。
15、看过开源项目吗?hdfs的源码,但是竟然不问,扯到linux上了。。
16、linux内存管理,以及其中的算法。
17、进程、线程、协程区别。用过协程吗?
18、虚拟内存和物理内存之间如何联系的?什么时候进行交换。

3月27 HR面
1、简历问下,学校问下
2、职业规划
3、地点选择
4、项目点、自豪点
5、聊聊人生

3、字节跳动(大数据实习生)
白金内推免笔试,浪费了(笔试挺难的)
一面视频面
1、介绍下mapreduce
2、敲代码:用mr实现top10
3、敲代码:写单例模式,加锁,比较两种区别
4、敲代码:实现一个blockqueue
5、敲代码:实现36进制加法,中间不准转成10进制。
代码敲得不好,当场感觉凉凉。

4、远景智能(大数据开发)
笔试简单,基本都过
都是电话面
4月2
一面:简历面
1、线程和进程区别,进程为什么开销大?有哪些开销
2、JVM内存管理和垃圾回收。哪些操作会导致OOM?循环引用怎么解决?
3、分布式协议PAXOS/zab/raft都说下原理和区别;
4、zookeeper原理大概讲下。以及你用到的实际案例,比如HA
5、如何实现HA的选举,比如namenode的选举
6、数据库mysql和hbase的区别,以及仔细说下hbase的使用。
7、数据库的隔离级别,如何预防脏读?
8、说下hashmap/hashtable/concurrenthashmap,说底层了;
9、简述下http,状态码
10、tcp和ip区别。说下ip的包头和tcp的包头。
11、等下一面通知吧。。。

二面:4月9
1、自己说下上次面试,回答不好的问题:hashmap、循环引用解决(扩展到链表是否有环)
2、数据库如何给一个范围加锁,有几种方法去解决幻读?
3、volatile作用和底层如何实现
4、synchronized和Reentranlock区别以及底层实现原理
5、CAS理论以及典型运用
6、其他开放性问题。。。

三面HR:4月17
1、能不能来?
2、实习日期

5、拼多多(大数据开发)
有笔试,两到算法,两道sql
一面视频面 4月8日
简历面,从头到尾
1、先问笔试题还记得吗?不记得了,只记得有什么题型,做出多少。
2、天池项目
3、自己搭建的大数据项目,问了一些如何搭建以及搭建了哪些组件细节
4、说下second namenode 作用,扯到namenode 的ha,还有zk
5、zookeeper如何实现HA,以hdfs举例子
6、java特性,如何实现多继承?多态含义
7、topk问题
8、实现一个最大堆

二面4月15 视频50分钟(小姐姐)
1、手写一段代码实现以下功能:输入一组数字,长度为N,按照数字由小到大,输出前K个数字。
2、问实习项目,回答的一般,写在简历上的点必须要回答清楚
3、自己写的大数据项目,扯到一些问题
4、zookeeper如何实现namenode高可用?为了什么要主备切换,直接重启不行吗?数据量太大啊,重启时间太长,扯到第一关系构建,安全模式等(说了有20分钟)
5、JVM虚拟机启动有哪些线程?
6、重载和重写的区别
7、进程和线程的区别
8、String是基本数据类型吗?能被继承吗?final关键字
9、mysql索引说下,b+树
10、mvc了解吗?不懂,只了解大数据框架
11、请问你们项目组做什么的?她说大数据,我们数据量很大,有大数据平台,然后你懂得很多理论和源码,所以很适合你,给你提供锻炼的环境(言外之意,你稳了?)
总结:面试整体难度还可以,重项目,有基础。算法必须有,剑指offer级别的。实习项目不够充分,写了就要会。

HR:4月25
1、随便聊聊
2、核心点:能不能去实习?
HR:4月26
Offer call

下面投的日常实习生,面试记录
6、华泰实习面试
电话面(23分钟)
实习面试,问的不深。
按照简历问,华泰里面简历系统,一定写明方向。
1、 自我介绍
2、 天池比赛项目:数据预处理(SQL、mysql数据库优化、ACID)、特征提取方法、简述下随机森林。(本来从SQL引申到mapreduce、HBase,但是他不问)
3、 Linux平台:查看文件指令(tail/sed)、进程启动方式(命令行直接运行可执行文件)
4、 简历里面没写明,不知道我做什么方向,我想搞大数据,我说了大数据相关的点(hadoop/spark),但是他一点都不问,说明他可能不了解吧。
5、 问我实习情况:能实习多久。

7、头条日常实习(大数据开发)
视频面试
第一面:看着简历问的(该多说多说,不该多说不说)
1、 JVM垃圾回收
2、 分布式协议有哪些,Raft协议
3、 Linux中epoll和select区别
4、 TCP可靠性保证怎么实现
5、 进程间通信的方式。
6、 数据倾斜处理。在spark中处理。
7、 算法:链表反转
8、 算法:正方形矩阵内实现最小路径。
第二面:
算法:具体写啥忘记了,应该是两道链表题,当时算法刷的不多,写的不好。

四、学习笔记–面试点总结

内容有点多,就放一部分吧。星号表示重点程度。如果需要该笔记全部内容(有偿提供),请加qun号528040253联系qun主。

Java部分

一、Java基础	12
推荐书籍:《Java编程思想》、学习视频(毕向东Java入门视频)	12
1、Comparable和Comparator区别	12
2、Java中方法的参数传递机制(都是传递副本)★	13
3、Java的深拷贝和浅拷贝的区别	14
。。。
。。。。
13、生产者和消费者模式(与并发编程一起学习)	20
14、java反射	22
15、final关键   ★	22
二、JVM	23
推荐书籍:《深入理解java虚拟机》	23
1、介绍JVM的内存区域(运行时数据区)。 ★★	23
2、如何判断对象已经死亡? ★★	24
3、简述强、软、弱、虚引用。 ★	24
4、简述垃圾收集算法以及各自特点。  ★★	25
5、常见的垃圾收集器有哪些。 ★★	26
6、吞吐量优先和响应优先的垃圾收集器如何选择?	27
7、内存分配与回收策略。(对象何时进行老年代?) ★	27
。。。。
13、jvm启动模式之client与server(蚂蚁金服)	30
14、如何优化Java GC(蚂蚁金服)  ★	30
。。。
三、Java并发	32
推荐书籍:《Java高并发程序设计》(强烈推荐结合这本书学习)	32
1、线程的状态有哪些?	32
2、并发级别有哪些?	32
3、happen-before原则是什么? ★	32
4、创建线程的几种方式。	33
5、线程基本操作	33
6、volatile和synchronized有什么区别? ★★	33
。。。。
9、线程之间的协作	36
10、ConcurrentHashMap实现原理  ★★	37
11、多线程锁的优化  ★	37
四、数据库
推荐书籍:《mysql必知必会》、《MySQL技术内幕:InnoDB 存储引擎》	42
1、数据库ACID特性  ★★	42
2、四大隔离级别,以及不可重复读和幻影读的出现原因  ★★。	42
3、封锁的粒度、锁的类型。	43
4、 B+ Tree 原理,与其它查找树的比较。 ★★	45

.....计算机基础、数据库等部分

大数据部分

目录	2
★阅读指南	8
1、本书面向人群	8
2、本书主要内容	8
3、如何使用本书?	8
4、最终达到什么学习效果?	8
5、如何应对面试?	8
★笔者面试全记录	9
1、腾讯提前批——后台开发——选做笔试(最好做)	9
2、蚂蚁金服提取批——大数据开发相关——无笔试	9
3、字节跳动——大数据实习生——白金内推免笔试(笔试挺难的)	10
4、远景智能——大数据开发——笔试都是牛客原题	11
5、拼多多——大数据开发——有笔试,两到算法,两道sql	11
6、华为——大数据开发——有笔试——现场面	12
7、华泰证券——项目实习生——Java开发	12
8、字节跳动——大数据开发——日常实习	13
面试心得	13
一、MapReduce过程以及细节  ★	14
推荐书籍:《Hadoop权威指南》	14
1、整个流程的图	14
2、文件切片	15
3、环形缓冲区的底层实现	17
。。。
6、全排序  ★	19
7、辅助排序(二次排序)	20
8、join(和hive sql底层基本一致)	21
9、分布式缓存	21
二、YARN	22
推荐书籍:《Hadoop技术内幕:Yarn》	22
1、简述mapreduce1工作机制 ★	22
2、简述YARN(mapreduce2)工作机制  ★	23
3、简述YARN中application master向resource manager 申请资源的过程。	24
4、比较mapreduce1和YARN(mapreduce2)  ★	25
。。。。
9、YARN中的各部分运行故障如何处理?(作业运行失败可能的原因)	29
10、YARN中常见问题以及解决方案。	30
11、Yarn中Resource Manager的高可用实现(主备切换的底层实现)	31
12、Yarn中Resource Manager的高可用当中“脑裂”问题的解决。 ★	31
三、Zookeeper	32
推荐书籍:《从paxos到zookeeper分布式一致性协议》	32
1、简述事务的四大特征以及隔离性问题(单机数据库下的ACID)  ★。	32
2、简述下分布式系统和CAP、BASE理论。  ★	32
3、分布式系统下的一致性协议(2PC/3PC/Paxos)。  ★	33
4、简述Zookeeper中的分布式协议ZAB协议。  ★★	33
5、Zookeeper的系统模型(核心watcher监听机制)。  ★★	34
。。。。
9、Zookeeper服务器启动流程分析。	37
10、构建Zookeeper高可用的集群。	37
11、Zookeeper的典型应用场景总结。  ★★	37
12、raft协议  ★	39
四、HDFS	40
推荐书籍:《Hadoop 2.X HDFS源码剖析》	40
HDFS通信框架	40
1、简述HDFS的各节点之间的通信问题。	40
2、HDFS中RPC的通信接口及其主要功能(RPC上层接口)。	41
。。。。
5、HDFS中客户端与namenode的RPC通信实例(将RPC上层接口和底层实现结合分析)。	43
namenode	44
2、HDFS的namenode文件系统目录树管理(第一关系管理)。  ★★	44
3、HDFS的namenode对数据块和数据节点的管理。(第二关系管理)。  ★★	47
4、HDFS中数据块副本状态的管理。(BlockManager的成员变量)	48
5、namenode中数据块的增加的管理。(写文件,申请数据块构建内存)	49
6、namenode中数据块副本的删除的管理。	49
。。。。
12、namenode对datanode的心跳处理。(DatanodeManager)	52
13、namenode中的租约管理。(重点租约恢复)  ★	53
14、namenode中的集中式缓存管理。(集中缓存在对应副本的datanode上 )	54
15、namenode中的安全模式。  ★★	54
16、namenode中的高可用(HA)的实现。  ★★	55

.....后面还有流计算部分,Hbase数据库数仓等。

五、学习书籍推荐

推荐书籍
●Java书籍
Java基础:《Java核心技术卷I》、《Java编程思想》
Java提高:《深入理解java虚拟机》、《Java高并发程序设计》、 《大话设计模式》、JDK部分源码
关系型数据库:《 MySQL必知必会》、《MySQL技术内幕:InnoDB 存储引擎》
缓存: 《Redis设计与实现》
计算机基础:《现代操作系统》、《图解TCP/IP》、《鸟哥Linux私房菜:基础篇》
架构:《大型网站技术架构》 
●大数据开发书籍
Hadoop:《Hadoop权威指南》、《Hadoop技术内幕:Yarn》、《Hadoop 2.X HDFS源码剖析》
分布式协议:《从paxos到zookeeper分布式一致性协议》
流计算:《Spark大数据处理技术》、《Storm分布式实时计算模式》、《Flink官网/》
非关系型数据库:《HBase权威指南》
消息队列:《Kafka权威指南》、《Kafka官网》

内容有点多,就放一部分吧。如果需要联系我的,请加qun号528040253联系qun主。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值