面试总结

a 夏天 提交于 2019-12-30 14:32:08

面试流程

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时间还要长的多时,那硬盘寻道时间就成了系统的一个瓶颈

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!