史上最全的2023最新大数据面试笔记【200+页,10w+字】

这篇具有很好参考价值的文章主要介绍了史上最全的2023最新大数据面试笔记【200+页,10w+字】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介:我本硕都是双非计算机专业,研二开始学习大数据开发的相关知识,从找实习到秋招,投递过100+公司,拿到过10+的offer,包括滴滴、字节、蚂蚁、携程、蔚来、去哪儿等大厂,现在已经签约蚂蚁数据研发工程师。依稀还记得刚开始找工作,从零开始准备八股文的时候,心情超级浮躁,不知道该准备哪些内容(大数据组件实在太多了!!!),不知道哪些是重点,在这里感谢一下CSDN平台,提供了大量的面经,让我更快的抓住面试重点。在找工作的整个过程中,有了和面试官无数次交锋的机会,终于总结出了一份最强大数据面试笔记,非常好用!!!最后,为了回馈CSDN,决定将自己总结的所有面试重点题目开源出来,供大家学习参考!!!

全文共分为八大部分,涵盖大数据开发JAVA计算机基础数仓理论SQL场景等面试题

第一部分 大数据开发

HDFS面试重点

1. HDFS的架构

2. HDFS的读写流程

3.HDFS中,文件为什么以block块的方式存储

4. 小文件过多有什么危害,你知道的解决办法有哪些

5.在NameNode HA中,会出现脑裂问题吗?怎么解决脑裂

6. 简述hadoop压缩和解压缩的框架

7.namenode的安全模式有了解吗

8. Secondary NameNode 了解吗,它的工作机制是怎样的

9. 在上传文件的时候,其中一个 DataNode 突然挂掉了怎么办

10. 在读取文件的时候,其中一个块突然损坏了怎么办

11.介绍namenode宕机的数据恢复过程

12. NameNode 在启动的时候会做哪些操作

MapReduce面试重点

1. 简述MapReduce整个流程

2. 手写wordcount

3. join原理

4. 文件切片相关问题

5. 环形缓冲区的底层实现

6. 全排序

7. MapReduce实现TopK算法

Yarn面试重点

1. 简述yarn 集群的架构

2. yarn 的任务提交流程是怎样的

3. yarn的资源调度的三种模型

4. 简述Hadoop1.0 2.0 3.0区别

5. 任务的推测执行(spark ui见过)

Zookeeper面试重点

1. 简述leader选举机制

2. 简述什么是CAP理论,zookeeper满足CAP的哪两个

3. zookeeper集群的节点数为什么建议奇数台

4. 简述ZooKeeper的监听原理

5. 请说一下zookeeper的典型应用场景有哪些

6. 客户端向服务端写数据流程

7. zookeeper是如何实现分布式锁的

8. Paxos算法

9. Zab协议

Flume面试重点

1. 简述flume基础架构

2. 请说一下你提到的几种source的不同点

3. 简述flume的事务机制

4. flume采集数据会丢失吗

5. 简述flume的channel selector

Kafka面试重点

1. 为什么要使用kafka

2. 简述kafka的架构

3. 命令行操作

4. 生产者发送流程

5. 简述kafka的分区策略

6. kafka是如何保证数据不丢失和数据不重复

7. kafka中的数据是有序的吗,如何保证有序的呢

8. zookeeper在kafka中的作用有哪些

9. broker工作流程

10. 简述kafka消息的存储机制

11. kafka的数据是放在磁盘上还是内存上,为什么速度会快

12.kafka消费方式

13 kafka消息数据积压,消费者如何提高吞吐量

14. 你知道Kafka 单条日志传输大小吗

15. Kafka为什么同一个消费者组的消费者不能消费相同的分区

HBase面试重点题

1. 简述HBase的数据模型

2. HBase和hive的区别

3. HBase的基本架构

4. 简述HBase的读写流程

5. HBase在写过程中的region的split时机

6. HBase 中 compact 用途是什么,什么时候触发,分为哪两种,有什么区别

7. 热点现象怎么产生的,以及解决方法有哪些

8. 说一下HBase 的 rowkey 设计原则

9. 列族的设计规则

Hive面试重点

1. 简述hive

2. 简述hive读写文件机制

3. hive和传统数据库之间的区别

4. hive的内部表和外部表的区别

5. hive静态分区和动态分区的区别

6. 内连接、左外连接、右外连接的区别

7. hive的join底层实现

8. Order By和Sort By的区别

9. 行转列和列转行函数

10. grouping_sets、cube和rollup

11. 自定义过UDF、UDTF函数吗

12. hive3的新特性有了解过吗

13. hive小文件过多怎么办

14. Hive优化

15. 常用函数的补充

Spark面试重点

1. 简述hadoop 和 spark 的不同点(为什么spark更快)

2. 谈谈你对RDD的理解

3. 简述spark的shuffle过程

4. spark的作业运行流程是怎么样的

5. spark driver的作用,以及client模式和cluster模式的区别

6. 你知道Application、Job、Stage、Task他们之间的关系吗

7. Spark常见的算子介绍一下(10个以上)

8. 简述map和mapPartitions的区别

9. 你知道重分区的相关算子吗

10. spark目前支持哪几种分区策略

11. 简述groupByKey和reduceByKey的区别

12. 简述reduceByKey、foldByKey、aggregateByKey、combineByKey 的区别

13. 宽依赖和窄依赖之间的区别

14. spark为什么需要RDD持久化,持久化的方式有哪几种,他们之间的区别是什么

15. 简述spark的容错机制

16. 除了RDD,你还了解spark的其他数据结构吗

17. spark调优

18. 谈一谈RDD,DataFrame,DataSet的区别

19. Hive on Spark与SparkSql的区别

20. sparksql的三种join实现

21. 简单介绍下sparkstreaming

22. 你知道sparkstreaming的背压机制吗

23. SparkStreaming有哪几种方式消费Kafka中的数据,它们之间的区别是什么

24. 说一下你知道的DStream转换和输出原语

25. 简述SparkStreaming窗口函数的原理

Flink面试重点题

1. 简单介绍一下Flink

2. Flink和SparkStreaming区别

3. Flink的重启策略你了解吗

4. Flink的运行依赖于hadoop组件吗

5. Flink 集群有哪些角色?各自有什么作用

6. 简述flink运行流程(基于Yarn)

7. max算子和maxBy算子的区别

8. Connect算子和Union算子的区别

9. Flink的时间语义有哪几种

10. 谈一谈你对watermark的理解

11. flink对于迟到或者乱序数据是怎么处理的

12. flink中,有哪几种类型的状态,你知道状态后端吗

13. Flink是如何做容错的

14. Flink 是如何保证 Exactly-once 语义的

15. flink是如何处理反压的

16. Flink 是如何支持批流一体的

17. 你用过Flink CEP吗,简单介绍一下

第二部分 Java开发

java基础

1. JDK、JRE、JVM三者区别和联系

2. 基本数据类型和引用数据类型的区别

3. 8种基本数据类型、字节大小

4. 访问修饰符权限

5. java中方法的参数传递机制

6. final关键字

7. static关键字的作用是什么

8. Comparable和Comparator区别

9. Object类有哪些方法

10. java的深拷贝和浅拷贝的区别

11. java中==和equals的区别

12. String和StringBuffer、StringBuilder的区别

13. 简述面向对象三大特征

14. java中方法重载和重写的区别

15. 抽象类和接口的区别

16. 集合之间的继承关系

17. ArrayList和LinkedList区别

18. ArrayList扩容过程

19. HashMap底层实现

20. HashMap扩容过程

21. HashMap中为啥用红黑树不用二叉排序树或者平衡树

22. TreeMap底层实现

23. HashMap和Hashtable的区别?

24. Hashtable怎么保证线程安全的

25. ConcurrentHashMap原理

26. java反射机制

27. 异常体系

28. 常见的IO模型

29. 设计模式

30. 一致性hash算法

JVM

1. java运行时一个类是什么时候加载的

2. JVM一个类的加载过程

3. 继承时父子类的初始化顺序是怎样的

4. 什么是类加载器

5. JVM有哪些类加载器

6. 什么是双亲委派模型

7. JDK为什么要设计双亲委派模型,有什么好处

8. 可以打破双亲委派模型吗?如何打破?

9. 如何自定义类加载器

10. ClassLoader中的loadClass()、findClass()、defineClass()区别

11. 加载一个类采用Class.forName()和ClassLoader.loadClass()有什么区别

12. Tomcat的类加载机制

13. 为什么Tomcat要破坏双亲委派模型

14. 热加载和热部署,如何自己实现一个热加载

15. java代码到底是如何运行起来的

16. JVM内存结构

17. Java对象如何在堆内存分配

18. JVM堆内存中的对象布局

19. JVM什么情况下会发生堆内存溢出

20. JVM如何判断对象可以被回收

21. java中不同的引用类型

22. JVM堆中新生代的垃圾回收过程

23. JVM对象动态年龄判断是怎么回事

24. 什么是老年代空间分配担保机制

25. 什么情况下对象会进入老年代

26. JVM本机直接内存的特点及作用

27. 几个与JVM内存相关的核心参数

28. 堆为什么要分为新生代和老年代

29. 新生代为什么要有两个survivor区

30. eden区与survivor区的空间大小比例为什么是8:1:1

31. JVM中的垃圾回收算法

32. JVM垃圾收集器

33. full gc是什么

并发编程

1. java实现多线程有几种方式

2. 线程池相关内容

3. 线程有哪几种状态

4. sleep,wait,notify,yield和join方法的区别

5. 什么是上下文切换

6. 设计一个简单的死锁程序

7. ThreadLocal相关内容

8. 并发编程的三个问题

9. 介绍一下java内存模型

10. synchronized是如何保证三大特性

11. synchronized的特性

12. synchronized 的原理

13. ReentrantLock底层原理

14. synchronized与lock的区别

15. volatile的作用

16. volatile和synchronized的区别

17. CAS介绍一下

18. 乐观锁和悲观锁的区别

19. 锁升级的过程

20. synchronized优化

第三部分 计算机基础

计算机网络

1. OSI七层模型

2. TCP连接管理

3. TCP连接建立为什么需要三次握手

4. TCP连接释放为什么需要四次挥手

5. TCP连接释放的第四次握手为什么要等待2MSL

6. TCP是如何做到可靠传输的

7. TCP流量控制

8. TCP拥塞控制

9. 流量控制和拥塞控制的区别

10. TCP和UDP的区别

11. 视频面试中用TCP还是UDP

12. UDP如何实现可靠传输

13. TCP粘包问题以及解决方案

14. 域名解析的过程

15. 浏览器输入URL到显示页面的过程

16. 介绍HTTP

17. HTTP 1.0 和 HTTP 1.1 的主要区别是什么

18. HTTP和HTTPs的区别

19. HTTP是如何保存用户状态的

20. GET和POST的区别

21. 常见的状态码

22. ARP地址解析协议

操作系统

1. 什么是操作系统

2. 什么是系统调用

3. 进程和线程的区别

4. 进程有哪几种状态

5. 进程间的通信方式

6. 进程同步的四种方式

7. 进程的调度算法

8. 什么是死锁以及死锁的四个条件

9. 常见的几种内存管理机制

10. 分页机制和分段机制的共同点和区别

11. 快表和多级页表

12. CPU 寻址了解吗?为什么需要虚拟地址空间?

13. 什么是虚拟内存(Virtual Memory)

14. 什么是局部性原理

15. 虚拟存储器

16. 虚拟内存的几种实现

17. 页面置换算法

18. 僵尸进程和孤儿进程是什么

数据库

1. 索引是什么

2. mysql中索引的分类有哪些

3. B+树和B树的区别

4. mysql的索引结构

5. 为什么不用二叉树,红黑树,哈希表,B树

6. 聚集索引和非聚集索引的区别

7. 回表查询是什么

8. 覆盖索引是什么

9. 索引下推

10. 主键索引和辅助索引具体是什么

11. 为什么建议用自增id做索引而不用UUID

12. 主键索引使用int和string有啥区别

13. 缺少主键的话mysql怎么处理

14. 选什么字段当索引,索引何时失效

15. 索引合并和复合索引的区别

16. 简述事务

17. 数据库事务并发会引发哪些问题

18. 事务的四个隔离级别有哪些

19. 什么是幻读,如何解决

20. MySQL是如何保证ACID的

21. MySQL支持的锁有哪些

22. MVCC讲一下(怎么实现)

23. 间隙锁讲一下

24. 怎么实现可重复读(读提交)

25. select ... for update

26. 乐观锁与悲观锁,mysql如何实现乐观锁

27. MySQL中常见的几种日志

28. MySQL主从复制的流程

29. 关系型数据库与非关系型数据库的区别

30. 说一说drop、delete和truncate的共同点和区别

31. 数据库3个范式

32. MySQL中char和varchar的区别有哪些

33. MySQL中inner join、left join、right join和full join的区别有哪些

34. MySQL的执行顺序

35. having和where的区别

36. MySQL的存储引擎,以及区别

37. 大数据量里的分页查询怎么优化

38. SQL的优化方法

39. MySQL中视图和表的区别

40. 数据完整性约束

41. group by的实现方式

数据结构

1. 链表和数组的区别

2. 静态链表和动态链表的区别

3. 栈和队列的区别

4. 红黑树了解吗

5. 常见的排序算法

6. 图的常见算法

第四部分 数仓基础

1.数据仓库是什么

2.数据仓库和数据库有什么区别

3.为什么要对数据仓库分层

4.为什么需要数据建模

5.经典的数据仓库建模方法论有哪些

6.数仓相关的名词术语解释,比如数据域、业务过程、衍生指标

7.派生指标的种类

8.经典数仓分层架构

9.模型设计的基本原则

10.模型实施的具体步骤

11.维度建模有哪几种模型

12.维度建模中表的类型

13.维度表的设计过程

14.维度表的设计中有哪些值得注意的地方

15.维度规范化和反规范化如何理解

16.维表整合的两种表现形式

17.如何处理维度的变化

18.事实表设计的八大原则

19.事实表的设计过程

20.事实表有哪几种类型

21.多事务事实表如何对事实进行处理

22.单事务事实表和多事务事实表哪种设计更好

23.周期快照事实表的设计过程

24.累计快照事实表的设计过程

25.累计快照事实表的特点

第五部分 常考SQL

1.连续问题

2.分组问题

3.间隔连续问题

4.打折日期交叉问题

5.同时在线问题

6.最大连续登陆的最大天数问题

7.留存问题

第六部分 场景题

1.1亿个整数中找出最大的10000个数

2.给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url

3.有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,要求返回频数最高的100个词

4.有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,要求返回频数最高的100个词

5.外部排序

6.大数量中寻找中位数【网易】

7.大数量中寻找中位数【网易】

8.数据倾斜

第七部分 大厂面经合集

美团、蚂蚁、阿里、字节跳动、百度、滴滴、网易、快手、微众、京东、携程

共计100+篇面经文章来源地址https://www.toymoban.com/news/detail-741122.html

第八部分 大厂SQL真题

短视频业务

用户增长业务

电商业务

打车业务

教育业务

内容业务

到了这里,关于史上最全的2023最新大数据面试笔记【200+页,10w+字】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023版最新最全React面试题

    React 作为前端使用最多的框架,必然是面试的重点。我们接下来主要从 React 的使用方式、源码层面和周边生态(如 redux, react-router 等)等几个方便来进行总结。 这里主要考察的是,在开发使用过程中,对 React 框架的了解,如 hook 的不同调用方式得到的结果、函数组件中的

    2023年04月19日
    浏览(38)
  • 2023最新最全Web自动化测试面试题

    1、Selenium 中 hidden 或者是 display = none 的元素是否可以定位到? 不可以。可以写 JavaScript 将标签中的 hidden 先改为 0,再进行定位元素。 2、Selenium 中如何保证操作元素的成功率?也就是说如何保证我点击的元素一 定是可以点击的? 添加元素智能等待时间 driver.implicitly_wait(30

    2024年02月11日
    浏览(42)
  • 史上最全141道大数据面试题:Redis+Linux+kafka

    数据传输的事物定义有哪三种? Kafka 判断一个节点是否还活着有那两个条件? producer 是否直接将数据发送到 broker 的 leader(主节点)? Kafa consumer 是否可以消费指定分区消息? Kafka 消息是采用 Pull 模式,还是 Push 模式? Kafka 存储在硬盘上的消息格式是什么? Kafka 高效文件存储

    2024年04月17日
    浏览(39)
  • 大厂最全1100道Java面试题及答案整理(2023最新版)

    春招,秋招,社招,我们 Java 程序员的面试之路,是挺难的,过了 HR,还得被技术面,小刀在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够入职一个独角兽公司,安稳从事喜欢的工作至今... 近期也算是抽取出大部分休息的时间,为大家准

    2024年02月09日
    浏览(40)
  • 2023版一线大厂Java面试八股文(最新版)1000+ 面试题附答案详解,最全面详细

    我的回答是: 很有必要 。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。现如今,Java 面试的本质就是八股文,把八股文面试题背好,面试才有可能表现好。金九银十招聘黄金季已经来临!大家在考研和找工作中纠结的时候,不妨先看一下面试题,毕竟我

    2024年02月08日
    浏览(44)
  • 【最新综述】史上最全面的3D语义分割综述(上)

            三维分割是计算机视觉领域的一个基本而具有挑战性的问题,可应用于自动驾驶、机器人、增强现实和医学图像分析。它受到了计算机视觉、图形学和机器学习界的极大关注。传统的三维分割方法基于手工创建的特征和机器学习分类器,缺乏泛化能力。在二维计算

    2024年02月20日
    浏览(51)
  • 史上最全最新Ubuntu20.04安装教程(图文)

    总的来说,安装Ubantu包含以下三个步骤: 一、安装虚拟机 二、Ubuntu镜像下载 三、虚拟机配置 一、安装虚拟机 选择安装VMware Workstation,登录其官网下载安装包,链接如下: 下载 VMware Workstation Pro​www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html​编辑 下载后运行安

    2024年02月05日
    浏览(43)
  • 2023最全软件测试基础+字节大佬整理的面试笔记(超详细~)

    软件是计算机系统中的程序和相关文件或文档的总称。 说法一:使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。 说法二:软件测试就是利用一定的方法对软件的质量或者使用性进行判断和评估的过

    2024年02月09日
    浏览(48)
  • 史上最全!国内外最新免费3D模型下载网站分享!

    关注柳杉前端公众号,获取更多资料 ❝ 最近在学习three.js,所以找了一些模型库练习,顺便也分享给大家!希望对你有用。 ❞ 01 kenney 「地址:https://www.kenney.nl/assets?q=3d」 「推荐:★★★★★」 「简介」 :Kenney 国外游戏创意原型资源网站。矢量图形、UI资源、3D游戏资源、

    2023年04月10日
    浏览(119)
  • Tomcat安装及配置教程(保姆级)【最新史上最全版】

    (以tomcat-9.0.62为例:) 可以从官网下载安装包: 输入网址进入官网 选择版本10,版本9,或者版本8,都可以,这里下载的版本9 不想去官网的直接百度网盘自提: 链接:https://pan.baidu.com/s/1_wWx48RVn_BSk3eXneAZYw?pwd=aijy 提取码:aijy 选择下载64-Bit Windows zip(Win64),根据电脑版本选

    2024年02月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包