安恒信息大数据岗面经
本来以为是问JAVA,因为投递的时候是写着JAVA,结果按简历问了比较多大数据相关。
1、自我简介,项目介绍,问项目细节。
2、Flink的窗口了解哪些,都有什么区别,有哪几种时间?如何定义?watermark需要实现哪个实现类,在何处定义?
3、Flink的CEP了解吗?Checkpoint底层如何实现的?savepoint和checkpoint有什么区别?有哪些实现类可以用来保存中间计算结果?分别有什么区别?
4、Flink有没有遇到过OOM?如何排查?项目的数据规模?问了一些设置参数。
5、spark的stage如何划分,在源码中是怎样判断属于shuffleMapStage或resultStage的?如何判断出现了数据倾斜?如何解决?join的时候,会调用什么算法进行shuffle?spark的内存模型知道吗?
6、前面提到kafka,如何保证全局有序的?flink和sparkstreaming处理的时候,分别怎么做?
7、kafka的消费者,如何保证不消费到重复的数据?通过提交offset,并保证数据的幂等性。通常可以怎么做?保存在redis和Mysql有什么区别?如果有一条offset对应的数据,消费完成之后,手动提交失败,如何处理?回滚,利用Kafka的事务解决。介绍下Kafka的事务。
8、java中ReetrantLock的非公平性是如何实现的?有什么意义?说了可重入性,底层的AQS,顺便介绍了一下volatile以及JAVA内存模型。
9、JVM那一套,不赘述。
顺便聊了聊一些日常,问了下工作内容。面试已过,待二面。