面试题

646 阅读12分钟

大数据面试题-汇总于若泽大数据

1 collect_list(),collect_set()两个函数的区别是什么,参数类型有什么限制?
2 内部表(管理表)和 外部表的区别?
3 Hive 的视图 和Oracle数据库的视图区别?
4 hive 中的 sort by, order by, cluster by, Distrbute by分别是什么含义和用途?
5 Hive数据倾斜的原因有哪些?并请举例一下具体的处理方法?
6 本月某种产品的销售额相比上个月下降的主要原因是什么如何分析?
7 某公司楼下有一便利店,35平米,每天有6位工作人员,请估算每天的营业额?



1 谈谈Spark RDD 的几大特性,并深入讲讲体现在哪
2 说说你参与过的项目,和一些业务场景
3 请说说Spark的宽窄依赖
4 Spark的stage划分,task跟分区的关系
5 详细讲讲Spark的内存管理,计算与存储是如何协调的
6 rdd df ds 之间的区别 ,什么时候使用ds
7 聊聊kafka消费如何保证不会重复消费
8 你项目里说到了数据延迟和数据重跑,请你说说当时是怎么解决的,如何保障幂等性


1 HBase 的读写过程
2 HBase 的主键设计、热点问题
3 JVM 哪个GC CMS、G1 为什么会有内存锁片
4 公司ID,产品ID,总收益 ,写个sql求按分公司分组,组内按总收益排序
5 NN的HA的详细流程
6 Yarn的三种调度模式
7 写个双重检验锁,多线程对锁的了解,线程池,阻塞同步队列 
8 熟悉shuffle的过程
9 Sychosized 关键字 


1 1.1 写一个时间复杂度是o(n2)的排序
  1.2 写一个时间复杂度是o(nlogN)的排序
  1.3 链表删除倒数第N的元素

2 spark数据倾斜的解决方案
3 针对spark源码,你认为哪些代码对你影响最深,最出彩的地方在哪?
4 scala隐式转换的实现方式
5 scala隐式转换和继承有什么样的区别与联系
6 scala的trait 与 java的interface有什么区别,有什么联系
7 用scala写出一个设计模式,比如工厂模式
8 case class 与 class 的区别
9 linux 下递归查找 xxx 文件夹下的 比如 xxx.java中比如main方法的命令

1 GC算法有哪些,在什么地方使用
2 join shuffle 是怎么实现的
3 TopN的场景,如果iterator里的记录特别多,怎么选出前10个?时间复杂度是多少,怎么写代码可以降低复杂度
4 hdfs上的xml文件,统计学生成绩
5 看过哪些spark源码,用了什么设计模式
6 解释rdd的五大特性
7 svm的缺点是什么
8 怎么判断flume收集的延迟数据全部收集完成
9 数据量多大,集群规模多大
10 为什么要修改taildir source 源码,不修改有什么其他的解决方案

1 项目为什么选择Maxwell
2 scheduling mode : FIFO 解释下
3 scala的协变,隐式转换,科里化都了解吗
4 kafka 的精准消费是怎么实现的
5 Hbase的读写流程跟底层存储了解吗
6 Hbase的rowkey设计
7 spark的内存管理


1 python scala java 中任选两种实现快速排序和二分查找
2 简述map和flatmap的区别和对应的应用场景
3 grouoBykey 和 reduceBykey的区别和对应的应用场景
4 foreach 和 foreachpartition的区别和对应的应用场景
5 简述你在大数据集群使用或研发中遇到的某个问题,以及你是如何定位和解决的(数据倾斜除外)
6 MapReduce 中数据倾斜问题的解决方案
7 写出你用过的spark中的算子,其中哪些会产生sheffle过程
8 hive中外部表和内部表的区别,分区和桶的区别
9 spark coalesce 与 repartition 的区别
10 spark 中 rdd 与 parition的区别
11 如何在hadoop与spark中分别实现多文件输出
12 请写出创建Dateset的几种方式


1、数据质量管理怎么做的
2、zk的选举机制是怎样的
3、kafka出现消息堆积怎么办
5、kafka数据重复怎么办
6、说说数仓项目的整个架构
7、为什么选用Maxwell,而不是阿里的canal?
8、canal怎么配置的,HA是怎样的
9、Maxwell为什么要二次开发?
10、Phoenix使用中遇到过那些问题
11、Phoenix 多表join有用过吗,会怎样?
12、Spark的内存调优有涉及哪些参数
13、生产上的集群规模是多少
14、每天的数据量是多少
15、集群上有多少个作业在跑
16、数据倾斜怎么解决的
17、Spark SQL select count(1) from tmp 的执行计划是怎么走的
18、yarn的调度队列是怎样的
19、Spark job的提交流程
20、一个stage中有8个task,spark 中有两个executor,那么task是怎么分配的。(这个问题我一直没明白什么意思,后面沟通中才知道,面试官想问的是数据本地性)
21、java线程池有哪些
22、java线程有哪几种
23、数组与arrayList互转的方式
24、数组的排序怎么做的
25、java中主线程需要等待多个子线程执行完成后,才能继续执行怎么做?当超过指定时间后,也继续执行怎么做?
26、一个子线层中一直在while (true) 主线程如何控制子线程退出
27、手写了两道面试官临时想出来的算法题
28、spring mvc的接收到请求后执行流程
29、requestBody和responseBody这两个注解是做什么的
30、mybatis中ResultType和ResultMap的区别
31、如何向数据库中批量插入数据
32、然后还有几个前端及前端与后端交互的问题,skip

1、10亿条数据,求top10如何优化、优化、优化(就是取前十条数据,不是组内求和)
2、HDFS的读写流程
3、HBase的读写流程
4、JVM如何调优
5、数据质量管理怎么做的?
6、Spark 广播变量在项目中如何运用的?
7、Spark 累加器在这个项目中用来做什么?
8、通过shell做监控会吗?
9、namenode和datanode挂掉了如何解决
10、Spark VS Flink VS Storm
11、Hive优化参数
12、MR的执行流程
13、说说这个实时数仓项目的执行流程
14、说说Flink的架构
15、HBase的二级索引如何构建?
16、HBase如何保证数据不丢失?
17、幂等性主要解决什么?
18、谈谈你是如何对Flume如优化的?
19、你们公司APP的埋点日志是如何收集的?
20、你们公司的数仓有几层、是哪几层、维表在哪层?
21、每天的业务量是多少?高峰和低谷是多少?
22、集群规模是怎样的?资源是如何分配的?
23、如何解决shuffle,不要回答那种网上一搜的全是互相摘抄的,有没有自己的独特解决案例?
24、你们ETL处理流程是怎样的
25、数仓项目MySQL数据是如何采集的?
26、你的离职原因是什么?


1 Scala闭包
2 Kafka ISR
3 Kafka的备份原理
4 Kafka怎么保证数据0丢失
5 SS的反压机制
6 怎么处理小文件
7 SS的源码阅读过吗?DStream中的map怎么在源码实现的
8 设计模式,单例模式,工厂模式,请简单说一下单例模式,在Spark哪个地方体现了
9 Spark的map 在RDD中怎么实现
10 Spark的repartition的是啥类型的算子,action还是transform
11 Spark的coalesce VS repartition区别
12 Flume的channel类型,memory与file的区别,你们用啥
13 Spark的RDD常用的算子,知道多少
14 Spark的HashShuffle VS SortShuffle
15 HBase RK怎么设计,生产具体举例
16 Kafka挂了,SparkStreaming怎么保证数据不丢失




1 Spark 调优你都调哪块?
1.使用Json格式好处和坏处?
2.Flume组件谈谈你的理解 自己自定义过Sink 和拦截器么?
3.Kafka 优点 为什么快?
4.什么是零拷贝?
5.自己搭建过 Apache的Hadoop么?高可用你怎么理解?
6.你公司集群规模?
7.datanode挂了一台会发生什么?
8.Spark你遇到的故障以及如何解决?
9.Spark内存管理?

1.你Spark作业cpu飙升你分析一下 什么原因?
2.Spark实时这块你怎么做的调优?
3.那么你调优的时候 如何动态修改你要调的参数?怎么调?(实时)
4.spark-submit 你的脚本 运行了一段时间发现数据量大了 你如何调内存参数?
5.Spark内存管理说一下

1.Flume延迟数据你们怎么处理的?
2. 出了一个场景 :
    MySQL数据同步 今天的数据 如果有延迟 这个延时数据跑到下一天了 你该怎么办?
3.Spark内存管理?
4.在Spark里面 定义一个类 里面的属性是 boolean类型的 它内存由谁管理 内存是多大?
5.join 和 group by 是堆内还是堆外?
6.Spark调优 你怎么做的
7.说了他们的实时数仓和团队人员配置



1 大数据一条线的数据流向介绍
2 HBase rowkey 设计原则
3 RDD 5大特性
4 Spark Streaming + Kafka 怎么保证数据零丢失




Kafka 怎么保证数据零丢失
Maxwell vs Canal
Hive 数据类型
Hive udf 函数有哪些
Redis 数据类型
HBase 写数据流程
两个表要做实时的 join 操作,怎么做?
Java 类的生命周期
Hive 中是否有索引,用吗?为什么?
Impala 用过吗?
调度工具 Oozie 用过吗?
Kylin 用过吗?
Flink vs Sparkstreaming
Flume 的架构是啥?
ES 啥时候会脑裂?
两个流遇到了相互 join 的操作吗?
Spark Streaming 的时候怎么进行用 Spark SQL
Spark SQL join 操作有哪几种?




Hive 元数据
Hive 内部表,外部表
Spark SQL 一定比 HQL 快吗?请举例说明
ReduceBykey VS groubykey 
JVM 的 GC,Full GC 算法,其他几种GC的优缺点
java 线程池
Impala 用过吗?了解吗
Spark 内存管理
HBase 的LSM树,读写流程
kafka 怎么保证数据不丢
SparkStreaming + kafka 的2种模式的区别,Receiver与Direct的方式



J总实时数仓介绍
Maxwell VS Canal 
每天的数据量大小
Sparkstreming 怎么自动重启
一个实时 job 分配多少个 executor 北京A公司

谈谈项目
谈谈你对每个组件的理解
谈谈kafka at least once
说一说HBase的读流程
谈谈kafka的组件,例如 topic partition producer consumer broker
谈谈ack = all 
谈谈 RDD 特性和RDD的描述
为什么要把kafka的offset存储到外部数据库
你们生产上kafka 调优的参数?
Shuffle的操作有哪些?
什么时候会划分stage?
你sql是如何计算每个道口Top3的人流量的?大致的说一说的sql语句
说一说你的main函数是怎么把代码发送到Executor的?
flink 了解过吗?能谈谈flink的窗口和状态吗?
谈谈你自定义Flume类,解决日志折断的问题?
谈谈面向对象?
谈谈继承与组合的区别?
北京B公司

谈谈你spark生产上解决的一些问题
谈谈你spark遇到的一些故障
coalesce和repartition什么场景使用?
从sql方面你觉得有哪些优化点吗?
在yarn上面如何查看core和memory的使用情况去进行调优?
谈一谈你的最近的一个项目?
谈一谈maxwell主要是做什么的?
谈一谈spark你在公司里解决了什么问题? 
说一说数据倾斜你是怎么解决的?
谈谈生产上你是如何设置core和memory的?
我们这里有数仓和调优两个方向,你想做哪个方向? 
谈谈继承与组合的区别?
北京C公司

spark task怎么划分的?
为什么spark中的shuffle过程会比较慢?
什么是宽依赖?什么是窄依赖? 
MySQL中的 group by是干什么的?having是干什么的?什么时候用having?
Kafka为什么快?kafka 数据都写在哪?
topic是干什么的?partition是干什么的?
scala中的int和java int区别?scala中的string和java中的string的区别?
scala中val var的区别 ?为什么scala推荐使用val?
scala中有哪些map?你对scala中的hashmap的理解
linux怎么查看机器状态?怎么看内存剩余情况?
top命令都会提供哪些信息?free命令会提供哪些信息?
shell脚本的知识:类似于怎么写一个提交spark任务的shell
yarn 内存,core 怎么分配,针对 Spark on yarn
JVM GC 的每一种优缺点,以及调优
Kafka 的 topic 数量,broker 数量,分区数,怎么保证全局有序
Kafka 怎么保证不丢数据
Flink 的窗口
Flink watermark,怎么设置
Flink 后端状态存储的区别,以及适用场景
结构化流 VS Flink VS Sparkstreaming
HBase 所遇到的问题以及调优
Springboot 会吗
Scala 的集合


J总实时数仓介绍
Maxwell VS Canal 
每天的数据量大小
Sparkstreming 怎么自动重启
一个实时 job 分配多少个 executor 
yarn 内存,core 怎么分配,针对 Spark on yarn
JVM GC 的每一种优缺点,以及调优
Kafka 的 topic 数量,broker 数量,分区数,怎么保证全局有序
Kafka 怎么保证不丢数据
Flink 的窗口
Flink watermark,怎么设置
Flink 后端状态存储的区别,以及适用场景
结构化流 VS Flink VS Sparkstreaming
HBase 所遇到的问题以及调优
Springboot 会吗
Scala 的集合