60 年 2025 多个数据工程师面试问题及答案

以下是数据工程面试问题和答案,可以帮助新手和经验丰富的数据工程师应聘者获得他们梦想的工作。

 

面向应届毕业生的数据工程师面试问题

1)解释数据工程。

数据工程是大数据的一个术语。它专注于数据收集和研究的应用。从各种来源生成的数据只是原始数据。数据工程有助于将这些原始数据转换为有用的信息。


2)什么是数据建模?

资料建模 是将复杂的软件设计以图表的形式记录下来,以便任何人都能轻松理解的方法。它是各种数据对象与规则之间关联的数据对象的概念表示。

资料建模


3)列出数据建模中的各种设计模式

数据建模中主要有两种类型的模式:1)星型模式和2)雪花模式。


4)区分结构化数据和非结构化数据

以下是结构化数据和非结构化数据之间的区别:

产品型号 结构化数据 非结构化数据
DBMS 非托管文件结构
标准版 ADO.net、ODBC 和 SQL STMP、XML、CSV 和 SMS
整合工具 ELT(提取、转换、加载) 包括代码的手动数据输入或批处理
缩放 架构扩展很困难 扩展非常容易。

5)解释 Hadoop 应用程序的所有组件

以下是 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)解释数据分析和大数据如何增加公司收入?

以下是数据分析和大数据增加公司收入的方式:

  • 有效利用数据来确保业务增长。
  • 增加客户价值。
  • 通过分析来改善人员配备水平预测。
  • 降低组织的生产成本。

这些面试问题也会对你的口试有帮助