大厂面试:字节大数据面试题及参考答案(10万字长文持续更新)

本文主要是介绍大厂面试:字节大数据面试题及参考答案(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万字长文持续更新)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1107965

相关文章

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

Java实现字节字符转bcd编码

《Java实现字节字符转bcd编码》BCD是一种将十进制数字编码为二进制的表示方式,常用于数字显示和存储,本文将介绍如何在Java中实现字节字符转BCD码的过程,需要的小伙伴可以了解下... 目录前言BCD码是什么Java实现字节转bcd编码方法补充总结前言BCD码(Binary-Coded Decima