📜  Hadoop面试问题

📅  最后修改于: 2020-12-04 02:18:34             🧑  作者: Mango

Hadoop面试问题

在许多公司中都提供了Hadoop面试问题和答案。让我们看一下最重要的Hadoop面试问题列表。

1)什么是Hadoop?

Hadoop是一个分布式计算平台。它是用Java编写的。它包含Google File System和MapReduce之类的功能。

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

Java 1.6.x或更高版本适合Hadoop,最好是Sun。 Linux和Windows是Hadoop支持的操作系统,但是BSD,Mac OS / X和Solaris因其工作而闻名。

3)哪种硬件最适合Hadoop?

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

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

这些是Hadoop中定义的最常见的输入格式:

  • TextInputFormat
  • KeyValueInputFormat
  • SequenceFileInputFormat

TextInputFormat是默认的输入格式。

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

大数据可以使用以下功能进行分类:

  • 速度
  • 品种

6)解释使用.mecia类吗?

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

7)使用引导面板。

我们从DOM组件的方框中使用引导中的面板。

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

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

9)命名Bootstrap支持的各种类型的列表。

  • 订购清单
  • 无序列表
  • 定义清单

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

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

11)Hadoop中的InputSplit是什么?说明。

Hadoop作业运行时,它将输入文件拆分为多个块,并将每个拆分分配给一个映射器进行处理。它称为InputSplit。

12)什么是TextInputFormat?

在TextInputFormat中,文本文件中的每一行都是一条记录。值是该行的内容,而键是该行的字节偏移量。例如,键:longWritable,值:文本

13)Hadoop中的SequenceFileInputFormat是什么?

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

14)Hadoop框架进行了多少InputSplits?

Hadoop分为以下5个部分:

  • 一键拆分64K文件
  • 65 MB文件的两个拆分,以及
  • 127MB文件的两个拆分

15)RecordReader在Hadoop中有什么用?

InputSplit被分配了作品,但不知道如何访问它。记录持有者类完全负责从其源中加载数据并将其转换为适合Mapper读取的密钥对。可以通过输入格式定义RecordReader的实例。

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执行的两个不同且不同的任务。第一步是映射作业,该作业将获取一组数据并将其转换为另一组数据,第二步是还原作业。它以映射的输出作为输入,并将那些数据元组压缩为较小的元组集。

22)在Hadoop中什么是“映射”和什么是“缩减器”?

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

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

23)MapReduce中的改组是什么?

混洗是一个过程,用于执行排序并将映射输出作为输入传输到reducer。

24)Hadoop中的NameNode是什么?

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

25)HDFS中的心跳是什么?

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

26)如何在HDFS中建立索引?

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

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

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

28)什么是Hadoop流?

Hadoop流是一个实用程序,可让您创建和运行映射/减少作业。它是一个通用API,它允许将以任何语言编写的程序用作Hadoop映射器。

29)Hadoop中的组合器是什么?

组合器是一种微型缩减过程,仅对Mapper生成的数据起作用。当Mapper发出数据时,合并器将其作为输入接收,并将输出发送给reducer。

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

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

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

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

以下是使用Hadoop的网络要求:

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

32)通过存储和计算节点您知道什么?

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

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

33)是否需要了解Java才能学习Hadoop?

如果您具有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有什么区别?

RDBMS Hadoop
RDBMS is a relational database management system. Hadoop is a node based flat structure.
RDBMS is used for OLTP processing. Hadoop is used for analytical and for big data processing.
In RDBMS, the database cluster uses the same data files stored in shared storage. In Hadoop, the storage data can be stored independently in each processing node.
In RDBMS, preprocessing of data is required before storing it. In Hadoop, you don’t need to preprocess data before storing it.

39)HDFS和NAS有什么区别?

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

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

Hadoop使您可以增加或减少映射器的数量,而不必担心要处理的数据量。

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

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

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

Hadoop工作-列表

Hadoop作业-杀死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命令用作映射或归约函数。

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

Hadoop使用HBase数据存储组件。