本文主要是介绍大厂面试:字节大数据面试题及参考答案(10万字长文持续更新),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
你在上一家公司用到了哪些大数据技术栈?
Hadoop 的组件都有哪些,分别起什么作用?
HDFS 读数据和写数据的流程是怎样的?
Kafka 如何保证数据不丢失?(包括生产者端和消费者端的措施)
Kafka 的 offset 存在哪个地方?
Kafka 怎么保证数据不重复?
分桶和分区有什么异同?
了解过 Flink 吗?Flink 和 Spark Streaming 的优劣势对比是什么?
数据倾斜如何解决?数据倾斜的场景有哪些?如何在 Hive 和 Spark 中判断和处理数据倾斜?
缓慢变化维怎么解决?
周期变化事实数据(如七天累计订单表)应该放哪一层?为什么?
什么数仓才算一个好的数仓?数仓分层的好处和每层功能是什么?
雪花模型跟星型模型区别是什么?
Redis 存储和普通数据库存储有什么区别?
Hadoop 能不能完全取代 Spark,为什么?
HBASE 存储格式与 Hive 存储格式有什么不同?
数据倾斜如何解决?数据倾斜的场景有哪些?如何在 Hive 和 Spark 中判断和处理数据倾斜?
缓慢变化维怎么解决?
周期变化事实数据(如七天累计订单表)应该放哪一层?为什么?
什么数仓才算一个好的数仓?数仓分层的好处和每层功能是什么?
雪花模型跟星型模型区别是什么?
Redis 存储和普通数据库存储有什么区别?
Hive 的作用是什么?Hive 与传统数据库的区别有哪些?
Hive 表内部表和外部表的区别是什么?
Hadoop 为什么要从 2.x 升级到 3.x?不停机升级过程中有哪些不兼容的地方?
HDFS 写数据过程是怎样的?写的过程中有哪些故障,分别会怎么处理?
Yarn 如何保证数据一致性(CAP)?主要问的 resourcemanager。
Zookeeper 起什么作用?Zookeeper 的消息发布订阅功能是怎样的?
Kafka 的特点、存储结构、Comsumer 和 ACK 响应机制是什么?
Kafka 如何保证生产者不丢失数据,消费端不丢失数据?
Kafka 挂掉了怎么保证系统一致性?
Spark 任务执行流程是怎样的?Spark 架构和提交流程是什么?
Spark Shuffle 与 MapReduce Shuffle 的区别是什么?
Spark 宽窄依赖定义,列举几个宽依赖算子。
Spark reducebykey 和 groupbykey 的区别是什么?
Spark 底层逻辑和 SQL 的 join 实现方式是什么?
流处理、批处理、微批处理的区别是什么?
Flink 的三种时间语义是什么?处理时间、事件时间和注入时间的使用场景分别是什么?
Watermark 怎么理解?Watermark 是怎么生成的?不同场景下该如何设置 Watermark?
Tumbling/Sliding/Session Window 的定义是什么?Watermark 和窗口中 AllowLateness 机制的区别是什么?
Checkpoint 的流程是什么?Checkpoint 和 Savepoint 的区别是什么?
Checkpoint 提供了一致性语义吗?Checkpoint Exactly-Once 语义是怎么实现的?
StateBackend 有什么类型?如何根据业务场景选型 StateBackend?
FsStateBackend 和 RocksDBStateBackend 的异步原理是什么?
RocksDBStateBackend 的引用计数法实现文件过期和增量快照的原理是什么?
红黑树特性和红黑树如何实现?
什么是窗口函数?ROW_NUMBER ()/RANK ()/LAG ()/LEAD () 的含义是什么?
RANK () 和 DENSE_RANK () 的区别和使用场景是什么?
PARTITION/CLUSTER BY/DISTRIBUTE BY 的含义和区别是什么?
使用 STACK 进行列转行和使用 EXPLODE 进行行转列的方法是什么?
如何实现多线程?进程和线程的区别是什么?
TCP 和 UDP 的区别是什么?TCP/IP 和 HTTP2.0 多路复用的好处是什么?
Java 虚拟机内存模型是什么?线程和进程会如何分配这些资源?
HashMap 的底层结构是什么?链表和数组在存储空间上的灵活性以及增删改查的速度如何比较?
B 树索引和 B + 树索引的区别是什么?MySQL 为什么要用 B + 树作索引?
平衡二叉树和 B 树的区别是什么?AUC 是什么,有什么意义?
写一个二叉树最长路径和的算法,返回这个路径和中最大和的那些节点。
使用队列实现栈的过程是怎样的?
什么是线程安全?Java 怎么保证线程安全?
StringBuilder 和 StringBuffer 的区别是什么?哪个是线程安全的?
LRU 算法是如何实现的?了解过 Redis 的数据结构吗?
Redis 用来当分布式锁是怎么整的?
MySQL 有哪些锁?next-key lock 能解决什么问题?
如何量化评判一个数仓是好的数仓?
数据库三大范式是什么?where 和 having 的区别是什么?
NoSQL 和 SQL 的区别和适用场景分别是什么?
MongoDB 适合存流式数据吗?
了解 MySQL 的索引吗?HiveSQL 为什么没有索引呢?
你是怎么判断有没有发生数据倾斜的?怎么排查的?Hive 和 Spark 分别看哪些指标?
你提到了在 webUI 看 shuffle write 和 shuffle read,它们分别在干嘛?
Map 端为什么要排序?map 端输出的文件组织形式是什么样的?
Map 端的索引说一下,它是怎么工作的,为什么要索引?
Map 端的索引说一下,它是怎么工作的,为什么要索引?
环形缓冲区了解吗?说一下它的阈值高低的影响。
哪些操作引起 shuffle?
Spark 里的 reduce by key 和 group by key 两个算子在实现上的区别并且说一下性能。
讲一下 heap 这个数据结构,还有各项操作的时间复杂度(如 heapify,insert)。
讲一下 LRU 算法。
为什么会发生 page replacement?为什么要 paging?
为什么要有 VM?
了解过索引与硬盘相关知识吗?
谈谈 Spark 常用算子。
如何实现一个 word 统计算法?
问了 MapReduce 执行流程以及 RDD 属性和 transformation 和 action 算子。
Hive 能读取 txt 文件吗?以及读取哪些类型文件,若不能该怎么让其能读?
各个文件分布在不同的分布式系统中,如何快速的实现某个字段前三?
了解过 CAP 理论吗?在哪些场景有体现?CA 系统是怎样的?
是否搭建过 Hadoop 集群?怎么搭建的?
Hadoop 有什么组件?分别讲一讲(如 HDFS,MapReduce,Yarn)。
进程通讯和线程通讯的区别?不同进程的线程能否通讯?
单例模式有哪些?不同单例模式的优缺点是什么?
volatile 关键字和指令重排是什么?
会用 Linux 吗?常用的 Linux cmd 有哪些?除了 sh 还有哪些运行 shell 脚本的方法?
大量数据处理时的内存优化方法有哪些?
HDFS 的读写流程和 Block 的选择策略是什么?
网络的七层协议是什么?TCP 和 UDP 在哪一层?
Linux/Unix 命令:查找最近 10 分钟修改过的文件的方法是什么?
有没有 Spark 的 Task 和 Executor 配比经验?了解 Spark 中 Partition,Task 和 Executor 吗?
Hadoop 中 NameNode 宕了怎么办?
Python 装饰器是什么?
写 Mysql 查询语句时需要注意什么?
Mysql 实现索引的方法有哪些?
Mysql ACID 特性是什么?
SQL 里 select 语句执行的顺序是什么?
介绍 SQL 里的不同 join 类型。
HiveSQL orderBy 和 sortBy 的区别是什么?
4 种线程池功能分别是什么?
事务隔离的四个级别是什么?
Mysql 为什么不用 hash 表索引?
索引的优点和不足是什么?
了解过 Netty 吗?Java NIO 与 BIO 对比有什么优缺点?NIO 的缺点是什么?
CAP 理论在哪些场景有体现?考虑过 CAP 吗?CA 系统是怎样的?
Hive 与 Yarn 是如何交互的?
如何量化评判一个数仓是好的数仓?
HDFS 的架构和 HA 是如何实现的?
HDFS 块大小不同版本不一样,为什么不一样?为什么要改进变大?
两个联合主键表关联时性能如何优化?
Kafka 的特点和存储结构是什么?
Zookeeper 的功能是什么?详细介绍一下 zookeeper 的消息发布订阅功能。
Redis 支持的数据结构有哪些?Redis 为什么性能高?Redis 为什么是单线程?
Hadoop 架构和 Hdfs 存储机制是什么?
Mysql 有几种索引?了解过 MySQL 的索引吗?
事务隔离的四个级别是什么?
Mysql 为什么不用 hash 表索引?
索引的优点和不足是什么?
了解过 Netty 吗?Java NIO 与 BIO 对比有什么优缺点?NIO 的缺点是什么?
你在上一家公司用到了哪些大数据技术栈?
在上一家公司,我们主要使用了以下大数据技术栈:
Hadoop 生态系统:包括 HDFS 用于分布式存储大规模数据,YARN 进行资源管理和调度。MapReduce 作为一种经典的分布式计算框架,用于处理大规模数据集的批处理任务。
Hive:用于数据仓库的构建和数据分析。通过类 SQL 的查询语言 HiveQL,可以方便地对存储在 HDFS 上的数据进行查询和分析,大大降低了数据处理的门槛。
Spark:具有高效的内存计算能力,适用于大规模数据的快速处理。我们使用 Spark SQL 进行结构化数据处理,Spark Streaming 进行实时流数据处理,以及 Spark MLlib 进行机器学习任务。
Kafka:作为分布
这篇关于大厂面试:字节大数据面试题及参考答案(10万字长文持续更新)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!