datax 面试题_百度,阿里,头条,美团,滴滴详细面经+Java大数据面试题

本文整理了秋招期间在百度、阿里、头条、美团、滴滴等公司面试的大数据相关问题,涵盖了分布式算法、HDFS、Zookeeper、JVM、数据结构、并发编程等多个方面,旨在帮助求职者准备面试。
摘要由CSDN通过智能技术生成

秋招结束,拿到了几个意向offer,除阿里五面跪,其他比较顺利。面经中有自己补充的内容,也有春招实习生的,这是我准备秋招的所有面经,希望有用。

百度运维部,基础平台研发工程师

(一面)

1.手写快排2.如何利用zookeeper进行选举,画图说明3.用zookeeper做任务分配如何实现4.什么是脑裂5.如何解决脑裂?并分别说明namenode和resourcemanager如何避免的脑裂?6.如何实现分布式数据存储的一致性7.讲一下一致性hash8.一致性hash与paxos算法的区别9.讲一下2PC,以及2pc什么情况下会出现数据不一致10.红黑树的应用场景11.Linux物理内存分配12.对/proc的理解13.讲一下代理模式14.讲一个外观模式的适用场景15.JVM垃圾回收16.讲一下INODE,以及什么时候会创建Inode17.I/O复用(select与epoll的区别)二面

1.设计题:给定一个文件大小为10M,存储在HDFS上,同时有10万台机器下载这个文件,给此场景设计一个架构。当文件大小为1G、10G时如何进行设计?2.为什么HDFS中的block默认大小为64M?3.说一下HDFS中namenode的实现?三面

1.看过哪些书?2.人生目标?3.介绍项目4.通过项目有哪些收获?

百度(系统部,计算与存储系统研发工程师)

一面

1.说一下你了解的分布式算法有哪些?2.说一下你对HDFS源码的理解,读源码有哪些收获?3.MapReduce的任务如何和HDFS结合起来?4.介绍一下2PC的协议?5.2PC在什么时候会发生阻塞?6.HDFS写入数据时发生故障如何处理?(分三种情况,客户端down掉,DataNode down掉,namenode down掉)7.ZAB写入如何避免阻塞的?8.Paxos协议在实际系统中,节点时如何选取的?Paxos协议中所有的角色都需要相同的逻辑吗?9.如果Paxos协议在HDFS中使用的话,如何使用?需要使用几台机器运行这个协议?10.Paxos协议的主要目的是什么?在Hadoop中举一个例子?11.HDFS中的三副本一致性如何设计?12.HDFS写入数据的过程如何保证写入数据的一致性的?13.一致性hash为什么加入节点后可以保证相对的balance的状态14.哪些适用到了一致性hash二面

1.问项目2.说一下HDFS的设计3.Federation namenode4.HDFS写入数据时是如何降低延迟的同时保持数据一致性的?5.Linux进程调度的策略?6.讲一下SMP体系结构?7.讲一下对指令流水线的理解由于获得了运维部的offer,所以系统部三面拒绝了。

美团,技术工程及基础数据平台,后台(大数据方向)

一面

1.手写树相关的算法(层次遍历的变种)2.JVM内存布局3.什么情况发生栈溢出4.讲一下双亲委派模型,以及其优点5.单利模式会破坏双亲委派模型吗?6.TOP K问题7.Map与reduce任务数量的指定二面

1.O(1)时间内删除单链表中某一个节点2.滑动窗口的中位数3.Zookeeper如何实现master选举5.Storm的结构7.Hbase行健的设计原则8.Hbase的日志合并树,以及为什么Hbase使用这个结构9.手写Scala实现wordcount三面

1.kafka与传统消息队列的区别2.一致性hash3.你为面试美团做了哪些准备4.其他的都是看什么书啊,如何学习的大数据啊相关的问题

滴滴,只能回忆这么多了

1.有一百个用户同时买一件商品,如何保证请求的顺序性2.设计一个大型网站架构,尽可能的全面详细。3.手写算法堆相关,取最大的K个数5.讲一下僵尸进程与孤儿进程6.讲一下fork函数的底层实现过程8.Yarn中的appmaster down掉怎么办?

头条

面试问题基本都在整理的问题之内。

三面,第一面主要问Java、撸算法,

二面问Hadoop、spark等大数据相关、撸两个算法,

三面问的比较杂,网络编程,Java,Linux,撸两个算法

CVTE、华为、中国电信IT研发中心的面经都在整理的其他问题中有,不在详细列举了。

阿里

一面:

1) .简述ZAB协议以及zookeeper2) .叙述你所知道的分布式一致性协议3) .叙述ZAB集群数据同步的过程P704) .简述paxos算法5) .Java中接口与抽象类的区别?6) .简述jvm的内存布局7) .可达性分析8) .简单叙述你所知道的垃圾回收算法与垃圾回收器9) .在垃圾回收对象的时候程序的逻辑是否可以继续执行10) .java中创建子类实例时会创建父类实例吗?11) .简单叙述minor和fullgc,结合网易一面第五题12) .简单叙述深度优先和广度优先遍历,以及区别?13) .网络请求的全过程,从客户端到服务器端?14) .TCP和UDP区别15) .HashMap源码,问map源码问题?以及与linkedHashMap,treemap不同16) .java虚拟机new一个对象创建的过程17) .说一下Java中的类加载机制?18) .双亲委派模型19) .简述分派20) .对象的内存布局:21) .简述虚拟机栈中各个部分p23922) .java中的泛型擦除?23) .java中的引用24) .死锁是如何产生的以及四个必要条件?25) .页表的作用、内存调度算法:26) .简述虚拟存储器27) .用java实现生产者消费者的三种方法28) .简述java Object类中的方法有哪些?29) .简述java中内部类30) .将对象从年轻代到老年代是如何判断该对象的执行了多久?以及什么情况下发转移?哪些对象在老年代中?31) .通过可达性分析,32) .散列解决冲突的方法33).说三种你熟悉的排序算法,简述快排的过程,以及冒泡、插入、快排的区别?以及如何优化快排和冒泡排序?34) .简述平衡二叉树的插入删除等操作35) .简述为什么会出现锁机制36) .Java线程同步的方式有哪些?37) .synchronized和volatile(可见性与禁止指令重排序)区别?

二面:

1) .请说出java中散列表、树所对应的容器类。Hashmap如何解决冲突的?2) .concurrentHashMap的实现3) .jdk 7与jdk 8中hashmap实现的区别4) .hashmap的初始容量为什么设置为16?5) .Arraylist与LinkedList区别?6) .ConCurrentHashmap是如何实现的,采用的什么锁?7) .CopyOnWriteArrayList?8) .简述java内存模型的happen before原则9) .简述ThreadLocal实现原理10) .hashmap保存自定义类是需要重写自定义类的那些方法11) .Java中如何创建线程?12) .Java线程池使用有界队列实现时的饱和策略有哪些?13) .启动线程时,Start与run的区别是什么?14) .JDK1.8的新特性?15) .介绍一下AbstractQueuedSynchronizer?16) .介绍一下Condition?17) .介绍一下Reentrantlock?18) .java中ReentrantLock的使用场景19) .java中synchronize与Lock的区别的使用场景20) .java中synchronized代码块的实现,以及jdk1.6对锁的优化?21) .java中的线程池实现有哪些?FixedThreadPool底层使用的是什么任务队列?22) .java中的线程有几种状态?什么状态是阻塞状态?23)怎么去看一个java进程中有哪些线程处于阻塞状态的?24) .java中的方法区中存放哪些东西?Jvm如何控制方法区的大小以及内存溢出的原因和解决。25) .Jvm outmemery的种类。26)方法区会发生OutofMemoryError吗?什么时候会呢?发生之后你怎么解决?27) .详细说一下域名解析的过程DNS?28) .请说一下spark的RDD?网易

一面:

1) .C 中free与delete的区别2) .一个程序在内存中都有哪些数据,哪些会占实际的内存3) .操作系统中虚拟存储器的作用,分页从逻辑地址到物理地址的映射过程4) .jvm如何判断对象是否失效,可达性分析是否可以解决循环引用5) .说出你所知道的jvm垃圾回收算法6) .简述zookeeper。7) .简述zookeeper部署的时候以多少个实例部署,为什么?8) .zookeeper的某个机器挂了,整个集群如何处理9) .zookeeper在重新选取leader的时候,还可以继续执行事务请求吗10) .请说一下zookeeper中leader的选举算法,即fastleaderelection算法11) .请说一下为什么会存在zookeeper,它可以用在哪里?12)Zookeeper可以做横向扩展吗?可以通过增加机器可以增加集群的性能吗?13)Zookeeper在yarn框架中如何实现避免脑裂的?14) .请实现单利模式。15) .产生死锁的四个必要条件:二面:

1) .请说一个你在Hadoop中理解最为深刻的点,比如hdfs等2) .简述tcp与udp的区别3) .简述tcp的三次握手与四次挥手?以及为什么四次挥手会有time_wait状态?4) .tcp为什么是三次握手不是两次,以及三次握手的缺陷?5) .简述socket的过程。6) .游戏排名,可以使用什么数据结构7) .简述tcp的流量控制与拥塞控制机制8) .讲一下HDFS是如何容错,存储信息的,如果用户想hdfs写入数据,请讲一下整个写入的过程。重要???????9) .在向HDFS中写数据的时候,当某写某一个副本的时候出错怎么处理?10) .HDFS的读流程。11) .说一下Namenode中维护的元数据中都存储了哪些信息?12) .讲一下Hadoop与spark的区别。13) .讲一下Hadoop和YARN中的任务调度算法和任务队列

美团

1.简述java中的深拷贝与浅拷贝,C 中的浅拷贝与深拷贝2.Jvm垃圾回收分代以及何时发生minorGC以及FullGC,3.讲一下zookeeper如何保证数据的一致性4.讲一下同步异步(进程和IO)5.讲一下epoll,以及与select的区别?6.讲一下hashmap与concurrenthashmap的区别7.ThreadLocal的实现8.Synchronized的实现(无锁队列等)9. jvm的内存布局10. CAS底层实现原理12. Java中的锁优化13. Hive数据倾斜的原因以及处理办法?Hive的map端聚合为什么能解决数据倾斜?12.介绍yarn框架13.介绍工厂模式以及其适用场景,说出你了解的几种单利模式的实现方式14.Combiner函数的使用发生在哪个阶段,以及其使用的条件是什么?Partition的使用阶段?14. java开发过程中遇到过哪些exception?15. Hbase删除一条数据的过程。16.Mysql有哪些存储引擎?有什么区别?17.聚集索引与非聚集索引。18. Linux的more命令19.事务的隔离级别 具体见该链接20.联合索引及其实现原理21. Mysql优化

以下是整理的各个技术框架可能问到的问题:

Hadoop:

30. Fsimage与EditLog?31. Fsimage与EditLog合并过程?32. HDFS的安全模式33. HDFS工具?34. HDFS中在clientProtocol中出现的基本概念的抽象?35. HDFS clientProtocol接口36. HDFS ClientDataNodeProtocol接口37. HDFS DataNodeProtocol接口38. HDFS InterDataNodeProtocol接口39. HDFS NameNodeProtocol接口40. HDFS读数据与写数据。41. HDFS源码实现中有哪些优化?42. HDFS数据节点目录结构43. HDFS数据节点的实现44. DataNode流式接口的实现?45. DataXceiver处理读请求?46. DataXceiver处理写请求?47. HDFS写入过程的几种可能?48. HDFS写入过程DataNode出错如何处理(具体过程)?49.写入过程客户端崩溃怎么处理?50. HDFS DataNode升级过程?51. HDFS中的distcp与fastcp?52. Hadoop中输入切片inputsplit?53. HDFS namenode的HA的实现?54.简述联邦HDFS。55. Hadoop如何实现全局排序56. HDFS什么时候会出现副本数量多于设定值得情况?57. HDFS如何添加和撤销数据节点58.切片?59.如何避免切片?60.简述mapreduce的工作机制,以及mapreduce1与mapreduce2的区别?12.mapreduce之间如何选择压缩格式?12.mapreduce的计数器?12.Yarn中的ApplicationMaster故障后如何处理?61.简述yarn中的资源调度器?62. Hadoop YARN常见问题以及解决方案63.浅谈Yarn RM的总体架构64.浅谈Hadoop Yarn内存和cup的资源调度(管理)和资源隔离机制(cvte问题)?65.说一下Yarn中APPmaster向resourcemanager申请资源的过程?66.说一下Hadoop Yarn中的container概念(cvte面试,资源调度的过程)?67.简述mapreduce1的不足?68.简述mapreduce的shuffle机制?69.简述mapreduce的shuffle机制存在哪些缺陷?70. MR速度较慢?71. Combiner()函数何时被使用?72. reduce()函数如何知道从哪台机器获取map输出?73. Hadoop作业调优?74.简述Hadoop archive?75.简述Hadoop对于小文件的处理方法?76.简述Hadoop的安全认证。77.简述Hadoop如何衡量两个节点之间的距离。78. HDFS上的副本时怎么放置的79. HDFS的一致性模型80.简述sqoop.

Hadoop namenode源码:

81. HDFS的namenode目录树(namenode的第一关系管理)?(携程)82. HDFS namenode保存镜像文件之后,读取镜像文件时,如何判断是目录还是文件。P34183. HDFS namenode的数据块和数据节点管理(第二关系管理)。84. HDFS数据块副本状态的管理(主要是FSNameSystem)(携程)85. HDFS有一个数据块损坏如何处理?86. HDFS有一个数据块,如何知道其副本的情况呢(携程)87.客户端在写入数据时只写入一个数据块,如何处理(携程)88. HDFS块的复制?(携程)89. HDFS写入的过程?(携程)90. HDFS里面怎么建立三副本的过程?(携程)91. HDFS删除多余副本的过程(源码)?(携程一面、三面均被问到,CVTE一面问到)92. HDFS数据块复制时目的节点的选择原则(源码)?P40893. HDFS删除一个文件的过程(源码)?(携程)94. DataNode删除一个数据块的过程(源码)?(携程)95. HDFS客户端删除一个文件是同步还是异步的(源码)?(携程)96. Namenode中对于数据块的管理(增删改查)。97. Namenode中对于数据节点的管理(携程)?98. Spark中划分stage为什么以宽依赖为基准?(携程)99. Spark中的DAGScheduler和TaskScheduler的区别及任务调度过程?(携程)100. Spark中的stage必须要等所有父stage执行结束吗?(携程)101.当下游stage从上游stage拉取数据时,需要上游stage保持运行(对等)还是关闭?(携程)102.当上游stage关闭时,将数据存储在哪里?(携程)103. Spark的shuffle中的map输出是否有序(携程)104. Spark的shuffle中的map输出结果的处理结构是什么?(携程)

Storm相关:

1.简述storm的计算结构?2.storm怎么完成对单词的计数?可靠的单词计数呢?3.metaq消息队列,zookeeper集群storm集群就可以完成对商城推荐系统功能吗 还有其他中间件吗?4.storm的组件,逻辑?5. storm中的Stream grouping有哪几种方式?6.提高storm的并发度?7.storm的可靠性如何实现,包括spout与bolt两部分?P37

Kafka相关:

1.分布式的情况下,如何保证消息的顺序?2.如何提高kafka的效率?即优化?3. kafka与传统消息队列的区别?

spark相关:

1. 说一下spark中的基本工作流程?2. 说一下spark的运行模式?3. RDD是如何容错的?4. reduce如何获取map任务的输出?5. spark map端计算结果缓存处理并简述appendOnlyMap?6. spark map任务如何输出?7. spark任务调度模块?8. spark的存储管理?9. spark的存储管理中的RDD持久化?10. spark的存储管理中的shuffle持久化?11. 说一下spark中的shuffle过程?12. 说一下spark Streaming?13. 说一下spark Streaming支持的输入源有哪些?14. spark streaming与spark作业的关系?15. spark Stream优化?16. spark streaming优点缺点(常问)?17. spark Streaming的容错处理?18. spark Stream与storm的区别19. spark中reparation与coalesce的区别?20. spark中persist与cache的区别?21. 讲一下完整的ETL过程22. flume如何采集数据

又补充了一些:

1.简述你所知道的分布式一致性协议:2PC 3PC paxos算法2.简述paxos算法与Zab协议的联系与区别?3在HBASE中master的下线是否会引起Hbase完全宕机?4说明zookeeper ACL的权限模式:5简述zookeeper中leader选举的过程6简单叙述zookeeper的内存模型7.简单叙述zookeeper的日志文件与数据快照8.简单介绍一下堆(数据结构)及堆排序9.简单叙述Hbase?10. Hbase中的zookeeper挂掉会出现什么?9.Hbase中master进行负载均衡的算法?P336三种9.在Hbase的特点?9.在Hbase与Hive的区别?9.Hbase表中新建列对行健有什么影响?9.在Hbase中regionserver发生故障后的处理过程?9.Hbase region切分过程?P2649.Hbase合并过程?P26511. Hbase中的逻辑模型与物理模型?12.介绍Hbase过滤器?13.介绍Hbase计数器?14. Hbase协处理器(coprocessor)?9.触发器与存储过程的区别10.在Hbase二级索引10.在Hbase region预分区?15. Hbase中rowkey的设计原则16. Hbase中get和scan的功能以及实现的区别17. Hbase中cell的结构15.Hbase中region太小和region太大带来的冲突.以及如何解决18. HBASE中compact用途是什么,什么时候触发,分为哪两种,有什么区别,有哪些相关配置参数?19. Hbase中列族的设计原则11. Hbase的操作主要有get put scan delete(墓碑)。简单介绍delete,及其缺陷。12.Hbase建表时的注意事项?13.Hive与Hbase整合后,什么时候创建外部表以及内部表?14. Hbase接收数据,短时间大量导入会被锁,如何处理?15. Hbase存储一行数据的过程16. Hbase查询一行数据的过程17. Hbase性能优化18. Hbase布隆过滤器:存在一定的误判率,且不可删除14. Hbase中的Htable是否是线程安全的15. Hbase目录结构16. Hbase Hfile结构14. WAL日志为何共享一个而不是每个region一个,以及WAL的切分.P27415. LMS树的优缺点14.聚族索引与非聚族索引的区别15. B 树与B-树的区别15.java中thread与Runnable的区别?16.java中闭锁CountDownLatch与栅栏CyclicBarrier的区别?17.通过trie树统计词频。见附件19.大数据量下Mysql查询优化措施20.长连接与短连接?21.介绍乐观锁与悲观锁22.叙述java中wait与sleep的区别以及notify与yield?23.介绍java中CAS原理24.syncronized与Lock的区别?25.Hbase与Hive整合?26.tcp粘包问题如何解决?28. HIVE内部表与外部表的区别,以及各自使用与哪种环境?Hive与传统数据库的区别?29. Hiverc文件?30. Hive分区?31. Hive分区过多有何坏处以及分区时的注意事项?(cvte面试题)32. Hive中复杂数据类型的使用好处与坏处?33. Hive分桶?34. Hive加载数据?35. Hive的表生成函数举例?36. Hive中的常用与语法?37. Hive元数据库是用来做什么的,存储哪些信息,为何不使用Derby?38. Hive什么情况下可以避免进行mapreduce?39. Hive连接?40. Hive JOIN优化?41. Hive外连接陷阱?P12742. Hive mapjoin?43. Hive的sort by,order by,distribute by,cluster by区别?44.使用hive如何进行抽样查询?P13645. Hive的分组排序(row_number()),组内TopN46. Hive分桶的原因或者说有什么好处?47. Hive视图?48. Hive举例说明Multi-group by。49. Hive严格模式50. Hive工作原理51. Hive索引52. Hive插入53. Hive性能调优54. Hive文件压缩格式有哪些,效率如何?55.如果频繁的使用自定义的UDF函数,如何不去每次通过create function temporary函数创建?56.在hive中求出一个数据表中在某天首次登陆的人?借助collect_set处理。57. Hive UDF UDAF UDTF介绍?58. Hive UDF编写过程?59. Hive编写udaf的过程,并实现group_concat功能60. hive中的transform61. Hive与传统关系型数据库的区别?62. Linux中的管道与重定向?Grep?63.列举你所知道的分布式算法或者协64. Java中创建字符串生成几个对象?

Linux内核:

1. Linux中的进程创建函数fork2. Linux中进程的实现。3. Linux中如何处理僵尸进程?4. Linux中如果父进程退出怎么办?6. Linux中内存分配。7. Linux中的僵尸进程8. Linux中进程地址空间9. Linux中进程通信的方式10. Linux中进程调度。11. Linux中CFS的实现?14.系统调用的作用?19. Linux中的内存管理(内核中的内存分配)?20. Linux中进程地址空间是如何表征的?22. Linux寻址时是如何绕过段机制的?23. Linux中进程的组成?24. Linux中保护模式与实模式以及寻址过程?25. Linux VFS?27. Linux中cache与buffer的区别(携程)?1.如何将一个用户源程序变为一个可在内存中执行的程序?2 Linux如何将源程序编译成目标文件的?2 Linux下的静态库与动态链接库

计算机网络:

131.简述SSL协议132.简述http协议与https协议134.七层协议每一层的任务及作用135. Tcp/Ip协议族137. UDP结构138. IP分片140. DNS解析过程141. TCP协议142. TCP断开为什么四次握手,而连接只需要三次?143. ARQ与滑动窗口

设计模式相关:

144.设计模式的原则145.代理模式的设计与实现以及使用场景146.简单工厂模式的设计与实现及与策略模式的区别147.工厂方法模式及其与简单工厂模式的区别?148.原型模式149.外观模式 (常问)150.建造者模式 问过151.观察者模式 问过9简述抽象工厂模式 问过9简述状态模式10简述适配器模式 常用11简述备忘录模式12简述组合模式13简述迭代器模式(高级编程语言中都已实现)14简述单利模式 问过12.简述桥接模式13.简述命令模式14.简述责任链模式 问过15.简述中介者模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值