阿里块存储一面,已凉!
1. Datanode故障机制怎么设计的?
2. Datanode 副本之间如何维护一致性?
3. 当client发送数据时主DataNode挂了怎么办?
4. Client和DataNode之间怎么设计断点续传,问了很多次?
5. Namenode怎么做负载均衡,除了用对DataNode的剩余容量排序还有哪些方法?
6. Client上传的时候已经发送的数据和主datanode接受到的数据大小不一样怎么办?比如说client发送了1/2的数据,DataNode只接受了1/3的数据,怎么做实时监测?
7. Client在上传下载过程中怎么感知主DataNode挂了,这时候主DataNode挂了怎么办?如果重新上传会造成DataNode存储空间的浪费,client继续上传文件,将文件上传到备份的DataNode,那么怎么将备份DataNode提升为主datanode,这个过程NameNode怎么参与?连环追问!
8. Client在下载的时候主datanode挂了,怎么自动切换到备份的DataNode?
9. client将文件分块上传时,如果某一个分块上传失败了,怎么办?绝对不能说重新上传,要重新上传这个分块,client需要记录自己已经上传了那些分块,重新和故障的datanode建立连接,DataNode要支持断点续传,如果一直无法建立连接怎么办?
10. Hashtable的key是怎么设计的?
11. 三次握手,连接失败怎么办?
12. 虚拟内存是怎么保证扩大容量的?
13. 讲一讲逻辑地址怎么映射到物理地址?页表
14. Volatile 关键字是怎么实现线程安全的?各个线程都保存一份这个变量吗?它的垃圾回收机制是怎么样的?这个一直追问。
15. LSM树能不能用于存储数据库的索引?它具有什么优点?
16. Stringbuffer 和 stringbulider的区别?
17. Java反射机制的内部原理?
18. JVM栈、堆和方法区?
19. 时间复杂度为O(n)的排序算法有哪些?
20. 快排的时间复杂度是多少?
21. Java实现多线程的方式?
22. 讲一讲kafka?
23. 数据库索引用什么数据结构?
24. 数据库的索引有哪些种类?
25. 在java中脏数据指什么?我回答a读了b修改的数据,但是b回滚了,面试官说java还有回滚,懵逼?
26. Epoch用过没有?
#面经##阿里巴巴#