Hadoop Interview Questions

Hadoop面试题

2025年3月17日 | 阅读 8 分钟

这里提供了在许多公司中被问到的Hadoop面试题和答案。让我们看看Hadoop的顶级面试题列表。

1) 什么是Hadoop?

Hadoop是一个分布式计算平台。它用Java编写。它由诸如Google文件系统和MapReduce之类的功能组成。


2) 运行Hadoop需要什么平台和Java版本?

Java 1.6.x或更高版本对于Hadoop来说是好的,最好来自Sun。Linux和Windows是Hadoop支持的操作系统,但BSD,Mac OS / X和Solaris在工作时更为流行。


3) 什么类型的硬件最适合Hadoop?

Hadoop可以在具有4-8 GB RAM并使用ECC内存的双处理器/双核计算机上运行。这取决于工作流程的需求。


4) Hadoop中定义的最常见的输入格式是什么?

以下是Hadoop中定义的最常见的输入格式

  1. TextInputFormat
  2. KeyValueInputFormat
  3. SequenceFileInputFormat

TextInputFormat是默认的输入格式。


5) 如何对大数据进行分类?

可以使用以下特征对大数据进行分类

  • 体积
  • 速度
  • 多样性 (Variety)

6) 解释.mecia类的用法?

为了使媒体对象从一侧浮动到另一侧,我们使用此类。


7) 说明bootstrap面板的用法。

我们在bootstrap中使用面板来装箱DOM组件。


8) 按钮组的目的是什么?

按钮组用于在同一行中放置多个按钮。


9) 说出Bootstrap支持的各种类型的列表。

  • 有序列表
  • 无序列表
  • 定义列表

10) 哪个命令用于检索运行Hadoop集群的守护程序的状态?

'jps'命令用于检索运行Hadoop集群的守护程序的状态。


11) Hadoop中的InputSplit是什么? 解释。

当Hadoop作业运行时,它将输入文件分成几块,并将每个split分配给mapper进行处理。这称为InputSplit。


12) 什么是TextInputFormat?

在TextInputFormat中,文本文件中的每一行都是一个记录。Value是行的内容,而Key是行的字节偏移量。例如,Key:longWritable,Value:text


13) Hadoop中的SequenceFileInputFormat是什么?

在Hadoop中,SequenceFileInputFormat用于按顺序读取文件。这是一种特定的压缩二进制文件格式,可将数据从一个MapReduce作业的输出传递到另一个MapReduce作业的输入。


14) Hadoop Framework创建了多少个InputSplit?

Hadoop创建5个拆分,如下所示

  • 一个用于64K文件
  • 两个用于65MB文件,以及
  • 两个用于127MB文件

15) Hadoop中RecordReader的用途是什么?

InputSplit分配了工作,但不知道如何访问它。记录持有者类完全负责从其来源加载数据并将其转换为适合Mapper读取的键对。RecordReader的实例可以由Input Format定义。


16) Hadoop中的JobTracker是什么?

JobTracker是Hadoop中的一项服务,用于在集群上运行MapReduce作业。


17) Hadoop中的WebDAV是什么?

WebDAV是一组HTTP扩展,用于支持编辑和上传文件。在大多数操作系统上,WebDAV共享可以作为文件系统挂载,因此可以通过在WebDAV上公开HDFS来将HDFS作为标准文件系统访问。


18) Hadoop中的Sqoop是什么?

Sqoop是一种用于在关系数据库管理系统(RDBMS)和Hadoop HDFS之间传输数据的工具。通过使用Sqoop,您可以将数据从MySQL或Oracle之类的RDBMS传输到HDFS中,以及将数据从HDFS文件导出到RDBMS。


19) JobTracker的功能是什么?

以下是JobTracker的主要任务

  • 接受来自客户端的作业。
  • 与NameNode通信以确定数据的位置。
  • 找到具有可用插槽的TaskTracker节点。
  • 将工作提交到选定的TaskTracker节点,并监视每个任务的进度。

20) 定义TaskTracker。

TaskTracker是集群中的一个节点,它接受来自JobTracker的任务,例如MapReduce和Shuffle操作。


21) Hadoop中的Map/Reduce作业是什么?

Map/Reduce作业是一种编程范例,用于实现跨数千台服务器的大规模可伸缩性。

MapReduce指的是Hadoop执行的两个不同且不同的任务。在第一步中,maps jobs获取数据集并将其转换为另一组数据,在第二步中,Reduce job。它将map的输出作为输入,并将这些数据元组压缩为较小的元组集。


22) Hadoop中的“map”和“reducer”是什么?

Map:在Hadoop中,map是HDFS查询求解中的一个阶段。map从输入位置读取数据,并根据输入类型输出键值对。

Reducer:在Hadoop中,reducer收集mapper生成的输出,对其进行处理,并创建自己的最终输出。


23) MapReduce中的shuffling是什么?

Shuffling是一个用于执行排序并将map输出作为输入传输到reducer的过程。


24) Hadoop中的NameNode是什么?

NameNode是一个节点,Hadoop将所有文件位置信息存储在HDFS(Hadoop分布式文件系统)中。我们可以说NameNode是HDFS文件系统的核心,负责记录文件系统中所有文件,并跟踪集群或多台机器上的文件数据。


25) HDFS中的心跳是什么?

心跳是数据节点和名称节点之间以及任务跟踪器和作业跟踪器之间使用的信号。如果名称节点或作业跟踪器不响应该信号,则认为数据节点或任务跟踪器存在一些问题。


26) 如何在HDFS中进行索引?

Hadoop中有一种非常独特的索引方式。一旦数据按照块大小存储,HDFS将继续存储数据的最后一部分,该部分指定了数据下一部分的位置。


27) 当数据节点发生故障时会发生什么?

如果数据节点发生故障,则作业跟踪器和名称节点将检测到该故障。之后,所有任务将在发生故障的节点上重新安排,然后名称节点会将用户数据复制到另一个节点。


28) 什么是Hadoop Streaming?

Hadoop streaming是一个实用程序,允许您创建和运行map/reduce作业。它是一个通用API,允许使用任何语言编写的程序用作Hadoop mapper。


29) Hadoop中的combiner是什么?

Combiner是一个微型reduce过程,仅在Mapper生成的数据上运行。当Mapper发出数据时,combiner将其作为输入接收,并将输出发送到reducer。


30) Hadoop的三个配置文件是什么?

以下是Hadoop中的三个配置文件

  • core-site.xml
  • mapred-site.xml
  • hdfs-site.xml

31) 使用Hadoop的网络要求是什么?

以下是使用Hadoop的网络要求

  • 无密码SSH连接。
  • 用于启动服务器进程的安全Shell(SSH)。

32) 您对存储和计算节点有什么了解?

存储节点:存储节点是文件系统所在的机器或计算机,用于存储处理数据。

计算节点:计算节点是执行实际业务逻辑的机器或计算机。


33) 学习Hadoop是否必须了解Java?

如果您具有任何编程语言(如C,C ++,PHP,Python,Java等)的背景,则可能会很有帮助,但是如果您在java方面一无所知,则必须学习Java并获得SQL的基本知识。


34) 如何调试Hadoop代码?

有很多方法可以调试Hadoop代码,但最流行的方法是

  • 通过使用计数器。
  • 通过Hadoop框架提供的Web界面。

35) 是否可以向Hadoop提供多个输入? 如果是,请说明。

是的,有可能。输入格式类提供了将多个目录作为输入插入到Hadoop作业中的方法。


36) Hadoop中作业和任务之间的关系是什么?

在Hadoop中,一个作业被分成多个小部分,称为任务。


37) 输入拆分和HDFS块之间有什么区别?

数据的逻辑划分称为输入拆分,数据的物理划分称为HDFS块。


38) RDBMS和Hadoop之间有什么区别?

RDBMSHadoop
RDBMS是关系数据库管理系统。Hadoop是基于节点的平面结构。
RDBMS用于OLTP处理。Hadoop用于分析和大数据处理。
在RDBMS中,数据库群集使用存储在共享存储中的相同数据文件。在Hadoop中,存储数据可以独立存储在每个处理节点中。
在RDBMS中,在存储数据之前需要对其进行预处理。在Hadoop中,您无需在存储数据之前对其进行预处理。

39) HDFS和NAS之间有什么区别?

HDFS数据块分布在集群中所有计算机的本地驱动器上,而NAS数据存储在专用硬件上。


40) Hadoop与其他数据处理工具之间有什么区别?

Hadoop可以方便地增加或减少mapper的数量,而不必担心要处理的数据量。


41) Hadoop中的分布式缓存是什么?

分布式缓存是MapReduce Framework提供的设施。 在执行作业时,它用于缓存文件(文本,存档等)。 框架在节点上执行任何任务之前,将必要的文件复制到从属节点。


36) 哪些命令用于查看Hadoop集群中正在运行的所有作业并在LINUX中终止作业?

Hadoop job - list

Hadoop job - kill jobID


42) Hadoop中JobTracker的功能是什么? Hadoop集群上有多少个JobTracker实例运行?

JobTracker是一项大型服务,用于在Hadoop中提交和跟踪MapReduce作业。 任何Hadoop集群上仅运行一个JobTracker进程。 JobTracker在其自己的JVM进程中运行它。

Hadoop中JobTracker的功能

  • 当客户端应用程序将作业提交给JobTracker时,JobTracker与NameNode通信以查找数据的位置。
  • 它找到具有可用数据插槽的TaskTracker节点。
  • 它将工作分配给选定的TaskTracker节点。
  • TaskTracker节点负责在任务失败时通知JobTracker,然后JobTracker决定该怎么办。 可能会在另一个节点上重新提交该任务,或者可能会标记该任务以避免。

43) JobTracker如何将任务分配给TaskTracker?

TaskTracker定期向JobTracker发送心跳消息,以确保其处于活动状态。 这些消息还通知JobTracker有关可用插槽的数量。 此返回消息更新JobTracker,以了解在何处安排任务。


44) 是否必须用Java语言为Hadoop编写作业?

否,有很多方法可以处理非java代码。 HadoopStreaming允许将任何shell命令用作map或reduce函数。


45) Hadoop使用哪些数据存储组件?

Hadoop使用HBase数据存储组件。