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

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

poj3468(线段树成段更新模板题)

题意:包括两个操作:1、将[a.b]上的数字加上v;2、查询区间[a,b]上的和 下面的介绍是下解题思路: 首先介绍  lazy-tag思想:用一个变量记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。 比如现在需要对[a,b]区间值进行加c操作,那么就从根节点[1,n]开始调用update函数进行操作,如果刚好执行到一个子节点,

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

hdu1689(线段树成段更新)

两种操作:1、set区间[a,b]上数字为v;2、查询[ 1 , n ]上的sum 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdl