大厂面试:字节大数据面试题及参考答案(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

相关文章

Java实现字节字符转bcd编码

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

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更