面试总结 整体分为Java部分,大数据部分,项目部分 Java:Java多线程写出伪代码,如何获得使线程返回值,Java如何实现线程安全,Java开发的分布式架构有没有接触过;jvm加载器有哪些,jvm的优化调那些参数怎么调的; Java其他基础知识:集合的区别,泛型的作用,final的作用,hashmap的底层结构及查找元素的原理;string和stingbuffer的区别;volatile的作用解释原理;java接口和抽象类的区别 Java数据结构实现:手写Java找出第二大数,冒泡排序,二叉排序,1000个楼梯每次走1或2或3台阶代码实现都多少种走法,在一亿个数字找出最大的10个(思路最小堆);用递归实现字符串反转代码实现; 大数据部分: Hadoop: 解释mr的过程;map和reduce的个数如何确定,分区的作用,combiner的作用,map端关联如何实现;mr实现topn代码,mr的二次排 序;secondname的作用,namenode的作用 Hive: 表有几种是什么时候使用外部表好处?Explain看过没,hive数据倾斜优化,mapjon和join的区别; Hbase: rowkey设计,hbase架构;hmaster和hregionserver的作用。 Flume: 常用的source,常用的channel(memory和file的区别), 常用的sink; Flume挂了怎么办,断点续传或者故障转移或者使用avroclient补数据;怎么实现负载均衡使用sink组 Storm: 如何设置,提高并行度?Storm架构;分组策略,项目中拓扑设计。 Kafka: 如何使用kafka涉及到项目架构; Mahout: 你用过哪些算法, Sqoop: 增量导入?Sqoop底层设计 项目部分: 介绍项目架构;介绍项目一些细节处理;数据的流向; 每天数据量,实时处理的话每秒多少?网站的话日访问量,集群大小。 假如实时使用的是storm,处理完之后数据保存到哪; 一般面试官会结合他的经验和或者感兴趣的技术和解决思路来问你项目中的一些细节问题。 其他:整体来说基础知识,数据结构,技术知识点,项目的问题处理,及高并发问题是经常被问到的问题。
|