面试复盘|携程 大数据 一 二面

    作者: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去统计文本里单词个数