面试流程
1> 简述你的一个项目
2> 画出你的项目的整体架构图,在其中都用了哪些技术解决了哪些问题
3> 然后说下你最熟悉的一个技术,比如spark,flink(结合项目来说)
4> 然后聊技术点(主要是自己在项目中使用的到的技术)
5> 考察数据库相关的知识
6> 然后可能考察自己的代码编写能力(可能是出一个需求并实现,或实现一个算法,比如二叉树,二分法等)
7> 最后对技术的总结性
1.spark sql,Hbase sql ,hive sql 各自的使用场景,优缺点
2.spark中的dirver 的作用有哪些
3.怎么保证kafka中的消息精准一次处理
4.实现二叉树算法
5.hbase怎样做预分区
6.结合项目说下使用哪些技术解决那些问题
7.在编程的过程中使用的算子,比如reduceByKey,groupByKey的使用场景,各自的优缺点
8.mapreduce和spark的使用场景,mapreduce和spark做对比
9.了解sqoop命令的底层实现吗?
10.写一个shell,实现查询前十行的数据
11.了解jdbc的底层实现吗?
12.在编程的时候是使用什么模式链接数据库的?
13.编程时怎样合理设置任务的参数?
14.spark中为什么在运行时会产生很多的task?与reperation的对应关系?
15.kafka中的ack机制,其中的判断条件是什么?
16.对hive了解多少,平时用到哪些方面?
17.Hive数据倾斜如何处理?内部表,外部表,分区,分桶
18.Hbase索引和Hive索引有什么区别?
1.Hive中的表为纯逻辑表,仅仅对表的元数据进行定义。Hive没有物理存储的功能,它完全依赖HDFS和 MapReduce。HBase表则是物理表,适合存放非结构化的数据。
2.Hive是在MapReduce的基础上对数据进行处理;而HBase为列模式,这样使得对海量数据的随机访问变得可行。
3.HBase的存储表存储密度小,因而用户可以对行定义成不同的列;而Hive是逻辑表,属于稠密型,即定义列数,每 一行对列数都有固定的数据。
4.Hive使用Hadoop来分析处理数据,而Hadoop系统是批处理系统,所以数据处理存在延时的问题;而HBase是准实 时系统,可以实现数据的实时查询。
5.Hive没有row-level的更新,它适用于大量append-only数据集(如日志)的批任务处理。而基于HBase的查询,支持和row-level的更新。
6.Hive全面支持SQL,一般可以用来进行基于历史数据的挖掘、分析。而HBase不适用于有join,多级索引,表关系 复杂的应用场景。
19.spark 的优化
20.Hdfs的块的大小多少能不能改成10M?
不能,假如数据块设置过少,那需要读取的数据块就比较多,由于数据块在硬盘上非连续存储,普通硬盘因为需要 移动磁头,所以随机寻址较慢,读越多的数据块就增大了总的硬盘寻道时间。当硬盘寻道时间比io时间还要长的多时,那硬盘寻道时间就成了系统的一个瓶颈
来源:CSDN
作者:明月清风,良宵美酒
链接:https://blog.csdn.net/qq_40822132/article/details/103746579