面试复盘|携程 大数据 一 二面
作者:Richard_$
链接:https://www.nowcoder.com/discuss/745154?source_id=discuss_experience_nctrack&channel=-1
来源:牛客网
大数据底层开发
45min
1.自我介绍
2.聊了会学校里研究方向,
3.介绍下学校里做的项目,还有非简历上写的一些项目、比赛
4.spark和hive的联系
5.mr执行过程和spark rdd的理解 ,优缺点
6.hdfs读写流程(源码级别包括:读写容错机制、发送队列、确认队列、管道传输)
7.groupbykey、reducebykey区别(1、groupByKey算子的功能固定,只能输出相同key值的序列,reduceByKey适用于分组排序过程中有数据聚合操作(sum)的情形,在其他场景下可能不适用。
2、reduceByKey算子在分区内会进行数据聚合操作,因此针对有sum的数据聚合操作,效率会更高一些。(groupByKey算子也能实现类似sum的数据聚合操作,相当于进行groupByKey操作后还需进行map类算子的sum操作)
8.spring了解吗,几个特性,不太了解给面试官说了说springboot
常用什么语言啊,从这开始展开编程语言的八股文,一顿输出
9.java遇到过内存溢出吗,怎么解决的。给他扯到跑spark遇到过,driver、executor、堆内堆外内存调优
10.使用线程池有什么好处
11.有几种创建线程池的方法
12.java里怎么做线程通信的(加锁,展开介绍下sycnc lock、信号量)
13.多个线程同时访问一个加锁方法发生什么,访问非加锁方法呢,访问静态方法呢
14.currenthashmap怎么实现的(从hashmap结构开始说起)
二面
1.自我介绍
2.介绍下实习项目
3.面对特别大的数据量hive怎么去做优化处理
4.编写特别复杂的sql有没有什么好的解决方法(udf)
5.udf是怎么在hvie里执行的(打包成jar上传到集群,注册自定义函数,通过类加载器载入系统,在sql解析的过程中去调用函数)
6.有两个包名、类名相同的类能不能正确加载会出现哪些问题(编写自定义类加载器来实现)
7.基类、子类用不同层级的加载去去加载会出现什么问题(有可能出现父类没有加载出现ClassNotFOundException)
8.单例对象怎么去创建,有哪些方法。描述下代码
8.·多线程去访问怎么加锁处理
9.在上面的基础上在优化一下
10.怎么去编写一个mr程序
11.applicationmaster有什么作用
12.reduce数量怎么确定
13.描述wordcount执行过程
14.reduce怎么知道去哪里拉去map结果集
15.搭建过集群吗,你这个项目为什么要先在伪分布式环境下去做,
16.集群为什么用stanlone不用yarn管理
17用shell去统计文本里单词个数