60 年 2025 多个数据工程师面试问题及答案
面向应届毕业生的数据工程师面试问题
1)解释数据工程。
数据工程是大数据的一个术语。它专注于数据收集和研究的应用。从各种来源生成的数据只是原始数据。数据工程有助于将这些原始数据转换为有用的信息。
2)什么是数据建模?
资料建模 是将复杂的软件设计以图表的形式记录下来,以便任何人都能轻松理解的方法。它是各种数据对象与规则之间关联的数据对象的概念表示。
3)列出数据建模中的各种设计模式
数据建模中主要有两种类型的模式:1)星型模式和2)雪花模式。
4)区分结构化数据和非结构化数据
以下是结构化数据和非结构化数据之间的区别:
产品型号 | 结构化数据 | 非结构化数据 |
---|---|---|
DBMS | 非托管文件结构 | |
标准版 | ADO.net、ODBC 和 SQL | STMP、XML、CSV 和 SMS |
整合工具 | ELT(提取、转换、加载) | 包括代码的手动数据输入或批处理 |
缩放 | 架构扩展很困难 | 扩展非常容易。 |
5)解释 Hadoop 应用程序的所有组件
以下是 Hadoop 应用程序的组件:
- Hadoop 常见: 它是 Hadoop 使用的一组通用实用程序和库。
- HDFS: 此 Hadoop 应用程序与存储 Hadoop 数据的文件系统相关。它是一种具有高带宽的分布式文件系统。
- Hadoop MapReduce: 它是根据算法提供的,用于大规模数据的处理。
- Hadoop YARN: 用于Hadoop集群内的资源管理,也可用于用户的任务调度。
6)什么是NameNode?
它是 HDFS 的核心。它存储 HDFS 的数据并跟踪集群中的各种文件。这里不存储实际数据。数据存储在 DataNode 中。
7)定义Hadoop流
它是一个实用程序,允许创建映射和减少作业并将它们提交到特定的集群。
8)HDFS 的全称是什么?
HDFS 代表 Hadoop 分布式文件系统。
9)在HDFS中定义块和块扫描仪
块是数据文件的最小单位。Hadoop会自动将大文件分割成小块。
块扫描器验证 DataNode 上显示的块列表。
10)当块扫描器检测到损坏的数据块时会发生哪些步骤?
以下是块扫描器找到损坏的数据块时发生的步骤:
1)首先,当Block Scanner发现损坏的数据块时,DataNode向NameNode报告
2)NameNode 开始使用损坏块的副本创建新的副本的过程。
3)正确副本的复制计数尝试与复制因子匹配。如果匹配发现损坏的数据块将不会被删除。
11)说出 NameNode 从 DataNode 获取的两条消息?
NameNode从DataNode获得两种消息。 它们是1)Block report和2)Heartbeat。
12)列出 Hadoop 中的各种 XML 配置文件?
Hadoop中有五个XML配置文件:
- Mapred 网站
- 核心站点
- HDFS 站点
- 纱线网站
13)大数据的四个V是什么?
大数据的四个V是:
- 速度
- 品种
- 音量
- 准确性
14)解释Hadoop的特点
Hadoop的重要特性包括:
- 它是一个可免费使用的开源框架。
- Hadoop兼容多种类型的硬件,并且易于在特定节点内访问新硬件。
- Hadoop 支持更快的分布式数据处理。
- 它将数据存储在集群中,与其余操作无关。
- Hadoop 允许为每个块创建 3 个具有不同节点的副本。
15)解释Reducer的主要方法
- setup():用于配置输入数据的大小,分布式缓存等参数。
- cleanup():此方法用于清理临时文件。
- Reduce():它是 Reducer 的核心,每个 key 被调用一次,并执行相关的 Reduced 任务
16)COSHH 是什么的缩写?
COSHH是“针对异构Hadoop系统的分类与优化调度”的缩写。
17)解释星型模式
星图 或星型连接模式是最简单的数据仓库模式类型。它被称为星型模式,因为它的结构就像一颗星。在星型模式中,星型的中心可能有一个事实表和多个关联的维度表。此模式用于查询大型数据集。
18)如何部署大数据解决方案?
按照以下步骤部署大数据解决方案。
1)使用 RDBMS 等数据源集成数据, SAP, MySQL, Salesforce
2)将提取的数据存储在NoSQL数据库或HDFS中。
3)使用Pig等处理框架部署大数据解决方案, Spark和 MapReduce。
19)解释 FSCK
文件系统检查或 FSCK 是 HDFS 使用的命令。FSCK 命令用于检查文件中的不一致和问题。
20)解释雪花模式
A 雪花模式 是星型模式的扩展,它添加了额外的维度。它之所以被称为雪花,是因为它的图表看起来像雪花。维度表是规范化的,将数据拆分到额外的表中。
21)区分星型模式和雪花模式
星 | 雪花模式 |
维度层次存储在维度表中。 | 每个层次结构都存储在单独的表中。 |
数据冗余的可能性很高 | 数据冗余的可能性很低。 |
它的数据库设计非常简单 | 数据库设计复杂 |
提供更快捷的立方体处理方式 | 由于连接复杂,多维数据集处理速度很慢。 |
22)解释 Hadoop 分布式文件系统
Hadoop 可与可扩展的分布式文件系统(如 S3、HFTP FS、FS 和 HDFS)配合使用。Hadoop 分布式文件系统是在 Google 文件系统上构建的。该文件系统的设计使其能够轻松在计算机系统的大型集群上运行。
23)解释数据工程师的主要职责
数据工程师有很多职责。他们管理数据的源系统。数据工程师简化复杂的数据结构并防止数据重复。很多时候他们还提供 ELT 和数据转换。
24)YARN 的全称是什么?
YARN 的全称是 Yet Another Resource Negotiator。
25)列出 Hadoop 中的各种模式
Hadoop 中的模式有 1) 独立模式 2) 伪分布式模式 3) 完全分布式模式。
26)如何在 Hadoop 中实现安全性?
执行以下步骤来实现 Hadoop 中的安全性:
1) 第一步是确保客户端到服务器的身份验证通道安全。向客户端提供时间戳。
2)第二步,客户端使用收到的时间戳向TGS请求服务票证。
3)最后一步,客户端使用服务票证向特定服务器进行自我认证。
27)Hadoop 中的 Heartbeat 是什么?
在 Hadoop 中,NameNode 和 DataNode 相互通信。Heartbeat 是 DataNode 定期向 NameNode 发送的信号,用于表明其存在。
28)区分 Hadoop 中的 NAS 和 DAS
NAS | DAS |
存储容量为109 到1012 以字节为单位。 | 存储容量为109 以字节为单位。 |
每 GB 的管理成本适中。 | 每GB的管理成本很高。 |
使用以太网或 TCP/IP 传输数据。 | 使用 IDE/ SCSI 传输数据 |
29)列出数据工程师使用的重要领域或语言
以下是数据工程师使用的几个领域或语言:
- 概率和线性代数
- 机器识别
- 趋势分析和回归
- Hive QL 和 SQL 数据库
30)什么是大数据?
这是大量的结构化和非结构化数据,无法通过传统的数据存储方法轻松处理。数据工程师正在使用 Hadoop 来管理大数据。
经验丰富的数据工程师面试问题
31)什么是FIFO调度?
这是 Hadoop 作业调度算法。在这种 FIFO 调度中,记者从工作队列中选择作业,最旧的作业优先。
32)提及 Hadoop 中任务跟踪器、NameNode 和作业跟踪器运行的默认端口号
Hadoop中任务跟踪器、NameNode和作业跟踪器运行的默认端口号如下:
- 任务跟踪器在 50060 端口上运行
- NameNode在50070端口上运行
- Job Tracker 在 50030 端口上运行
33)如何在 HDFS 数据节点上禁用块扫描器
为了禁用 HDFS 数据节点上的块扫描器,请将 dfs.datanode.scan.period.hours 设置为 0。
34)如何定义 Hadoop 中两个节点之间的距离?
该距离等于到最近节点的距离之和。方法 getDistance() 用于计算两个节点之间的距离。
35)为什么在 Hadoop 中使用商品硬件?
商品硬件易于获得且价格合理。它是一种兼容的系统 Windows、MS-DOS 或 Linux。
36)在 HDFS 中定义复制因子
复制因子是系统中文件的总副本数。
37)NameNode 中存储了哪些数据?
Namenode 存储 HDFS 的元数据,如块信息和命名空间信息。
38)机架意识是什么意思?
在 Haddop 集群中,Namenode 使用 Datanode 来改善网络流量,同时读取或写入任何靠近附近机架的文件以执行读取或写入请求。Namenode 维护每个 DataNode 的机架 ID 以获取机架信息。这个概念在 Hadoop 中称为机架感知。
39)Secondary NameNode 的功能有哪些?
以下是Secondary NameNode的功能:
- FsImage 存储了 EditLog 和 FsImage 文件的副本。
- NameNode崩溃:如果NameNode崩溃,则可以使用Secondary NameNode的FsImage重新创建NameNode。
- 检查点:Secondary NameNode使用它来确认HDFS中的数据没有损坏。
- 更新:它会自动更新 EditLog 和 FsImage 文件。它有助于保持 Secondary NameNode 上的 FsImage 文件更新。
40)当 NameNode 关闭并且用户提交新作业时会发生什么?
NameNode 是 Hadoop 中的单点故障,因此用户无法提交无法执行的新作业。如果 NameNode 发生故障,则作业可能会失败,因为用户需要等待 NameNode 重新启动才能运行任何作业。
41)Hadoop中Reducer的基本阶段是什么?
Hadoop 中的 Reducer 有三个基本阶段:
1. Shuffle:在这里,Reducer 从 Mapper 复制输出。
2. 排序:在排序中,Hadoop 使用相同的键对 Reducer 的输入进行排序。
3. 减少:在此阶段,与键相关联的输出值被减少以将数据合并到最终输出中。
42)为什么 Hadoop 使用 Context 对象?
Hadoop 框架使用 Context 对象和 Mapper 类来与其余系统进行交互。Context 对象在其构造函数中获取系统配置详细信息和作业。
我们使用 Context 对象来传递 setup()、cleanup() 和 map() 方法中的信息。此对象在映射操作期间提供重要信息。
43)在 Hadoop 中定义合并器
Combiner 是 Map 和 Reduce 之间的可选步骤。Combiner 从 Map 函数中获取输出,创建键值对,并提交给 Hadoop Reducer。Combiner 的任务是将 Map 中的最终结果汇总为具有相同键的汇总记录。
44)HDFS 中默认的复制因子是多少?它表示什么?
HDFS 中默认的副本数为 3。默认副本数表示每条数据都会有 3 个副本。
45)Hadoop 中的数据本地性是什么意思?
在大数据系统中,数据量巨大,因此通过网络传输数据毫无意义。现在,Hadoop 试图将计算移近数据。这样,数据就保留在本地存储位置。
46)在 HDFS 中定义 Balancer
在 HDFS 中,平衡器是一种管理工具,管理人员使用它来在 DataNode 之间重新平衡数据,并将块从过度利用的节点移动到利用不足的节点。
47)解释 HDFS 中的安全模式
这是集群中 NameNode 的只读模式。最初,NameNode 处于安全模式。在安全模式下,它阻止写入文件系统。此时,它从所有 DataNode 收集数据和统计信息。
48)Apache Hadoop 中分布式缓存的重要性是什么?
Hadoop 有一个实用的功能,即分布式缓存,它通过缓存应用程序使用的文件来提高作业的性能。应用程序可以使用 JobConf 配置为缓存指定一个文件。
Hadoop 框架将这些文件的副本复制到需要执行任务的节点。这是在任务开始执行之前完成的。分布式缓存支持只读文件以及 zip 和 jar 文件的分发。
49)Hive 中的 Metastore 是什么?
它存储模式以及 Hive 表位置。
Hive 表定义、映射和元数据存储在 Metastore 中。这些可以存储在 JPOX 支持的 RDBMS 中。
50)Hive 中的 SerDe 是什么意思?
SerDe 是序列化器或反序列化器的简称。在 Hive 中,SerDe 允许以任何格式从表中读取数据并将其写入特定字段。
51)列出 Hive 数据模型中可用的组件
Hive数据模型有以下组件:
- 表
- 分区
- 水桶
52)解释 Hive 在 Hadoop 生态系统中的用途。
Hive 提供了一个接口来管理存储在 Hadoop 生态系统中的数据。Hive 用于映射和处理 HBase 表。Hive 查询被转换为 MapReduce 作业,以隐藏与创建和运行 MapReduce 作业相关的复杂性。
53)列出 Hive 支持的各种复杂数据类型/集合
Hive 支持以下复杂数据类型:
- 地图
- 结构
- 排列
- 工会
54)解释 Hive 中的 .hiverc 文件如何使用?
在 Hive 中,.hiverc 是初始化文件。当我们启动 Hive 的命令行界面 (CLI) 时,会初始加载此文件。我们可以在 .hiverc 文件中设置参数的初始值。
55)是否可以在 Hive 中为单个数据文件创建多个表?
是的,我们可以为一个数据文件创建多个表模式。Hive 将模式保存在 Hive Metastore 中。基于此模式,我们可以从相同的数据中检索不同的结果。
56)解释 Hive 中可用的不同 SerDe 实现
Hive 中有许多可用的 SerDe 实现。您还可以编写自己的自定义 SerDe 实现。以下是一些著名的 SerDe 实现:
- OpenCSVSerde
- 正则表达式序列化器
- 分隔 JSONSerDe
- 字节流类型SerDe
57)列出 Hive 中可用的表生成函数
以下是表生成函数的列表:
- 爆炸(数组)
- JSON_tuple()
- 堆()
- 爆炸(地图)
58)Hive 中的倾斜表是什么?
倾斜表是指包含列值更频繁的表。在 Hive 中,当我们在创建表时将表指定为 SKEWED 时,倾斜值将写入单独的文件中,其余值将写入另一个文件。
59)列出由 create 语句创建的对象 MySQL.
通过 create 语句创建的对象 MySQL 如下面所述:
- 数据库
- 索引
- 表
- 用户
- 程序
- 触发端口
- 创建
- 首页
- 功能
60)如何查看数据库结构 MySQL?
为了查看数据库结构 MySQL,你可以使用
DESCRIBE 命令。此命令的语法为 DESCRIBE Table name;
.
数据工程师的 SQL 面试问题
61) 如何在 MySQL 表格列?
使用正则表达式运算符在中搜索字符串 MySQL 列。在这里,我们还可以定义各种类型的正则表达式,并使用regex进行搜索。
62)解释数据分析和大数据如何增加公司收入?
以下是数据分析和大数据增加公司收入的方式:
- 有效利用数据来确保业务增长。
- 增加客户价值。
- 通过分析来改善人员配备水平预测。
- 降低组织的生产成本。
这些面试问题也会对你的口试有帮助