您的位置:首页 > 大数据

大数据研发岗面经小结(涉及阿里,网易 云音乐以及商汤科技)

2017-09-29 10:08 253 查看
大数据研发岗面经小结(涉及阿里,网易 云音乐以及商汤科技)

项目方面:项目闪光点、优化点、涉及到的关键技术这些基本都会问,事先最好准备一下、如果有开源项目经验就更好。

语言方面:

至少精通一门语言Java或C/C++等(以Java为例),java内存模型、gc回收算法、各种gc回收器的使用场景;

类加载机制以及涉及到的一系列问题;volatile特性、主内存与工作内存交互、happen before原则、内存栅栏;

类加载过程(class文件到jvm这个过程);

callable runnable 区别;

synchronized与lock区别;

进程线程区别;

hashMap和treeMap的区别,以及实现;

concurrenthashmap怎么实习同步?各个版本的实现方案?

PS:最好再掌握一门脚本语言。如Python或者Scala等。

大数据方面:

MapReduce过程;

spark排序实现流程,reduce端怎么实现的;

HashPartitioner与RangePartitioner的实现,以及水塘抽样;

spark有哪几种join,使用场景,以及实现原理;

dagschedule、taskschedule、schedulebankend实现原理;(网易 云音乐 )

宽依赖、窄依赖;(网易 云音乐 )

画一个yarn架构图,及其通信流程;

hdfs数据读取流程,实现原理;

HBase和传统数据库的区别;

HBase读数据过程;

HBase Master和Regionserver的交互;

HBase的HA,Zookeeper在其中的作用;

Master宕机的时候,哪些能正常工作,读写数据;

region分裂;

Spark数据倾斜,怎么定位、怎么解决(阿里);

Mysql的索引类型及其实现原理;同时哪些存储引擎支持B树索引,哪些支持Hash索引;
为什么mysql索引要用B+树而MongoDB用B树?

Mysql查询如何优化;
主键和唯一索引的区别;
事务的隔离机制,mysql默认是哪一级;

MyISAM和InnoDB存储引擎的区别;

Mysql查询优化,慢查询怎么去定位?

Mysql中的各种锁,乐观锁,悲观锁(排他锁,共享锁);行锁,表锁是怎么实现的?

MapReduce支持哪些join,map端?reduce端?semi join?semi join可以通过什么算法去优化?

MapReduce实现二次排序;
用MapReduce实现两表join;
用MapReduce实现一个存储kv数据的文件,对里面的v进行全量排序;

Zookeeper实现原理,zab协议以及原子广播协议;

paxos协议,multi-paxos,zab,raft各种分布式协议内容,使用场景;

Hadoop namenode的ha,主备切换实现原理,日志同步原理,QJM中用到的分布式一致性算法(就是paxos算法)

spark运行架构:

spark运行原理,从提交一个jar到最后返回结果,整个过程;

spark的stage划分是怎么实现的?拓扑排序?怎么实现?还有什么算法实现?

spark rpc,spark2.0为啥舍弃了akka,而用netty?

spark的各种shuffle,与mapreduce的对比;

spark的各种ha,master的ha,worker的ha,executor的ha,driver的ha,task的ha,在容错的时候对集群或是task有什么影响?

spark的内存管理机制,spark1.6前后对比分析

spark2.0做出了哪些优化?tungsten引擎?cpu与内存两个方面分别说明

spark rdd、dataframe、dataset区别.

算法数据结构方面:

图怎么存的、有哪些图算法;
红黑树怎么实现、如果树里面有两个值相等的节点,怎么识别?

问题:一排正整数,每次只能去两头的数,甲乙两个人轮流取,如果甲先取,问最后谁取得数相加和最大,最大和为多少?典型博弈论问题(可以看看海盗分金问题),大致两个动态规划方程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐