2021年Hadoop 面试题--搭建 Hadoop 集群

举报
Donglian Lin 发表于 2021/10/20 00:19:22 2021/10/20
【摘要】 我希望这些 Hadoop 集群面试问题对您有所帮助。这只是我们 Hadoop 面试问题系列的开始。我建议您阅读整个系列,以深入了解 Hadoop 面试问题。加强你的基础永远不会太晚。在处理实际用例的同时,向行业专家学习 Hadoop。 

Hadoop集群面试题

寻找雇主经常问的 Hadoop 集群面试问题?这是 Hadoop 集群面试问题的第二个列表,其中包括设置 Hadoop 集群。我希望您一定没有错过我们的 Hadoop 面试问题系列的第一部分,其中涵盖了50 大 Hadoop 面试问题。 

永远记住,只有理论知识不足以破解面试。雇主希望应聘者也具备 Hadoop 方面的实践知识和实践经验。因此,此 Hadoop 集群面试问题将帮助您获得 Hadoop 框架的实用知识。  

如果您有兴趣在自己的系统上安装 Hadoop 集群,可以阅读我们关于单节点 Hadoop 集群设置多节点 Hadoop 集群设置的博客。 

1、Hadoop可以运行的模式有哪些?

我们有 Hadoop 可以运行的三种模式,它们是:

模式 描述
Standalone (local)
  • Hadoop 的默认模式是使用本地文件系统进行输入和输出操作。
  • 该模式主要用于调试目的,不支持使用HDFS。
  • mapred-site.xml、core-site.xml、hdfs-site.xml 文件不需要自定义配置。
Pseudo-distributed 
  • 您需要对上述所有三个文件进行配置。
  • 所有守护进程都在一个节点上运行。
  • 主节点和从节点都在同一台机器上。
Fully distributed
  • 它是 Hadoop 的生产阶段。
  • 数据分布在 Hadoop 集群上的多个节点上。
  • 单独的节点被分配为主节点和从节点。

运行 Hadoop 的模式

2. Standalone(本地)模式有什么特点?

  • 在独立模式下,没有守护进程,一切都在单个 JVM 上运行。
  • 它没有 DFS,它使用本地文件系统。 
  • 单机模式仅适用于在开发过程中运行 MapReduce 程序进行测试。
  • 它是最少使用的环境之一。

3. 伪模式有什么特点?

伪模式用于开发和测试环境。在伪模式下,所有守护进程都运行在同一台机器上。

4. 全分布式模式有什么特点?

这是一个重要的问题,因为在生产环境中使用了完全分布式模式,我们有“n”台机器组成一个 Hadoop 集群。Hadoop 守护进程在一组机器上运行。Namenode 运行在一台主机上,Datanodes 运行在其他主机上。NodeManagers 安装在每个DataNode 上,它负责在每个DataNode 上执行任务。所有这些 NodeManager 都由 ResourceManager 管理,ResourceManager 接收处理请求,然后相应地将请求的部分传递给相应的 NodeManager。

5. /etc/hosts 中配置了什么,它在设置Hadoop集群中的作用是什么?

这是一个技术问题,挑战您的基本概念。/etc/hosts 文件包含该主机的主机名及其 IP 地址。它将 IP 地址映射到主机名。在 Hadoop 集群中,我们将所有主机名(主机和从机)及其 IP 地址存储在 /etc/hosts 中,以便我们可以轻松地使用主机名而不是 IP 地址。

6. NameNode、ResourceManager 和 MapReduce JobHistory Server 的默认端口号是多少?

如果您使用 Hadoop,您应该记住基本的服务器端口号。对应守护进程的端口号如下:

Namenode - '50070'

资源管理器 - '8088'

MapReduce JobHistory 服务器——“19888”。

7. Hadoop 的主要配置文件有哪些?

♣ 提示:一般来说,通过告诉 Hadoop 中的 4 个主要配置文件并给出它们的简要描述来展示您的专业知识来解决这个问题。

  • core-site.xml: core-site.xml 通知 Hadoop 守护进程 NameNode 在集群上运行的位置。它包含 Hadoop 核心的配置设置,例如 HDFS 和 MapReduce 通用的 I/O 设置。
  • hdfs-site.xml: hdfs-site.xml 包含 HDFS 守护进程(即 NameNode、DataNode、Secondary NameNode)的配置设置。它还包括 HDFS 的复制因子和块大小。
  • mapred-site.xml:mapred-site.xml 包含 MapReduce 框架的配置设置,例如可以并行运行的 JVM 数量、映射器和减速器的大小、进程可用的 CPU 内核等。
  • yarn-site.xml: yarn-site.xml 包含ResourceManager 和NodeManager 的配置设置,如应用程序内存管理大小,程序和算法所需的操作等。

这些文件位于 Hadoop 目录中的 conf/hadoop/目录中。

8. Hadoop CLASSPATH 如何在 Hadoop 守护进程的启动或停止中发挥重要作用?

♣ 提示:为了检查您对 Hadoop 的了解,面试官可能会问您这个问题。

CLASSPATH 包括所有包含启动/停止 Hadoop 守护进程所需的 jar 文件的目录。CLASSPATH 设置在/etc/hadoop/hadoop-env.sh文件中。

9. 什么是 RAM 的溢出因子?

♣ 提示:这是一个理论上的问题,但如果你添加一个实际的品味,你可能会得到一个偏好。

地图输出存储在内存缓冲区中;当这个缓冲区快满时,溢出阶段开始以将数据移动到临时文件夹。

地图输出首先写入缓冲区,缓冲区大小由mapreduce.task.io.sort.mb属性决定。默认情况下,它将是 100 MB。

当缓冲区达到某个阈值时,它将开始将缓冲区数据溢出到磁盘。该阈值在mapreduce.map.sort.spil.percent 中指定

10、解压tar.gz格式的压缩文件的命令是什么?

这是一个简单的问题, tar -xvf /file_location/filename.tar.gz命令将解压 tar.gz 压缩文件。

11. 您将如何检查系统上是否安装了 Java 和 Hadoop?

通过使用以下命令,我们可以检查是否安装了 Java 和 Hadoop 以及它们的路径是否设置在 .bashrc 文件中:

用于检查 Java – java -version 

用于检查 Hadoop – hadoop 版本

12. 什么是默认复制因子,您将如何更改它?

默认复制因子为 3。

♣ 提示:可以通过三种方式更改默认复制因子。回答所有三种方式将显示您的专业知识。

  1. 通过将此属性添加到hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>5</value>
<description>Block Replication</description>
</property>
  1. 或者您可以使用以下命令在每个文件的基础上更改复制因子:

hadoop fs –setrep –w 3 /file_location

  1. 或者,您可以使用以下命令更改目录中所有文件的复制因子:

hadoop fs –setrep –w 3 -R /directory_location

13.fsck的完整形式是什么?

fsck 的完整形式是 文件系统检查。 HDFS 支持 fsck(文件系统检查)命令来检查各种不一致。它旨在报告 HDFS 中文件的问题,例如文件丢失块或复制不足的块。

14. hdfs-site.xml 的主要属性有哪些?

三个主要的 hdfs-site.xml 属性是:

  1. dfs.name.dir 为您提供 NameNode 存储元数据(FsImage 和编辑日志)的位置以及 DFS 所在的位置——在磁盘上或远程目录上。
  2. dfs.data.dir 为您提供 DataNodes 的位置,数据将存储在何处。
  3. fs.checkpoint.dir是Secondary NameNode在文件系统上存放待合并编辑日志临时镜像和备份FsImage的目录。

15. 如果在输入 hadoop fsck / 时出现“连接被拒绝的 java 异常”会发生什么?

如果您在键入 hadoop fsck 时收到“连接被拒绝的 Java 异常”,则可能意味着 NameNode 无法在您的 VM 上运行。


16、如何通过HDFS命令查看压缩文件?

我们可以使用hadoop fs -text /filename命令查看 HDFS 中的压缩文件。

17.进入安全模式和退出安全模式的命令是什么?

♣ 提示:首先解释安全模式,然后转到命令来解决这个问题。

Hadoop 中的安全模式是 NameNode 的一种维护状态,在此期间 NameNode 不允许对文件系统进行任何更改。在安全模式下,HDFS 集群是只读的,不会复制或删除块。

  • 要知道安全模式的状态,可以使用命令:  hdfs dfsadmin -safemode get
  • 进入安全模式:  hdfs dfsadmin -safemode enter
  • 退出安全模式:  hdfs dfsadmin -safemode leave

18. 'jps' 命令有什么作用?

jps命令用于检查机器上运行的所有 Hadoop 守护进程,如 NameNode、DataNode、ResourceManager、NodeManager 等。

19. 如何重启Namenode?

这个问题有两个答案,回答两个都会给你加分。我们可以通过以下方法重启NameNode:

  1. 您可以使用 单独停止 NameNode  /sbin /hadoop-daemon.sh 停止 namenode命令,然后使用/sbin/hadoop-daemon.sh 启动namenode
  2. 使用 . /sbin/全部停止。SH再利用 。/sbin/start-all.sh 命令将首先停止所有守护进程,然后启动所有守护进程。

20.如何检查NameNode是否正常工作?

要检查 NameNode 是否正在运行,请使用jps命令,这将显示所有正在运行的 Hadoop 守护进程,您可以在那里检查 NameNode 守护进程是否正在运行

21. 如何在浏览器 UI 中查看 Namenode?

如果要在浏览器中查找 NameNode,NameNode Web 浏览器 UI 的端口号是 50070。我们可以使用http://master:50070/dfshealth.jsp在 Web 浏览器中检查。

22. 用于启动和关闭 Hadoop 守护进程的不同命令有哪些?

♣ 提示:解释停止和启动 Hadoop 守护进程的所有三种方式,这将展示您的专业知识。

  1. ./sbin/start-all.sh来启动所有的 Hadoop 守护进程和 . /sbin/stop-all.sh停止所有 Hadoop 守护进程。
  2. 然后你可以使用/sbin/start-dfs.sh,纱线守护进程一起使用/sbin/start-yarn.sh和 MR 作业历史服务器使用/sbin/mr-jobhistory-daemon.sh 启动历史服务器。为了类似地停止这些守护进程,我们可以使用/sbin/start-yarn.sh , ./sbin/start-yarn.sh & /sbin/mr-jobhistory-daemon.sh 停止历史服务器
  3. 最后一种方法是单独启动所有守护进程并单独停止它们:

./sbin/hadoop-daemon.sh 启动目的

./sbin/hadoop-daemon.sh 启动datanode

./sbin/yarn-daemon.sh 启动资源管理器

./sbin/yarn-daemon.sh 启动节点管理器

./sbin/mr-jobhistory-daemon.sh 启动历史服务器

并以类似方式阻止它们。

23. slaves 文件由什么组成?

从属文件由主机列表组成,每行一个,该列表包含运行节点管理器服务器的 DataNode 位置。

24. masters 文件由什么组成?

masters 文件包含辅助 NameNode 服务器位置。

25. hadoop-env.sh 有什么作用?

hadoop-env.sh 为 Hadoop 提供了运行环境。比如JAVA_HOME、CLASSPATH等都在这里设置。

26. hadoop-env.sh 文件在哪里?

正如我们之前所讨论的,所有配置文件所在的位置,因此 hadoop-env.sh 文件存在于  /etc/hadoop 目录中。

27.在Hadoop_PID_DIR中,PID代表什么?它有什么作用?

PID 代表“进程 ID”。此目录存储正在运行的服务器的进程 ID。

28. hadoop-metrics.properties 文件有什么作用?

♣ 提示:由于此文件仅在特殊情况下手动配置,因此回答此问题会给面试官留下深刻印象,表明您对配置文件的专业知识。

hadoop-metrics.properties 用于“性能 报告”目的。它控制 Hadoop 的报告。API 是抽象的,因此可以在各种指标客户端库之上实现。客户端库的选择是一个配置选项,同一应用内的不同模块可以使用不同的度量实现库。该文件存储在/etc/hadoop 中

29. Hadoop 的网络要求是什么?

您应该回答这个问题,因为 Hadoop 核心使用 Shell (SSH) 与 Salve 通信并在从节点上启动服务器进程。它需要 在主从机和从机之间建立无 密码的SSH 连接,因此不必每次都要求身份验证,因为主从机需要严格的通信。

30. 为什么我们需要在全分布式环境中使用无密码 SSH?

我们需要 在全分布式环境中使用无 密码SSH,因为当集群在全分布式环境中运行时,通信过于频繁。DataNode 和 NodeManager 应该能够快速向主服务器发送消息。

31. 这会导致安全问题吗?

一点都不。Hadoop集群是一个孤立的集群,一般与互联网无关。它有一种不同的配置。我们不必担心这种安全漏洞,例如有人通过互联网进行黑客攻击等等。Hadoop 有一种非常安全的方式来连接到其他机器以获取和处理数据。

32. SSH 在哪个端口上工作?

SSH 在端口号 22 上工作, 但它可以配置。 22 是默认端口号。

33. 你能告诉我们更多关于 SSH 的信息吗?

SSH 只不过是一种安全的外壳通信,它是一种工作在 22 号端口上的协议,当您进行 SSH 时,您真正需要的是密码,以连接到另一台机器。SSH 不仅可以在主从之间,也可以在两台主机之间。

34. 当 ResourceManager 关闭时,NameNode 会发生什么?

当 ResourceManager 关闭时,它不会起作用(用于提交作业),但 NameNode 会出现。因此,如果 NameNode 正在工作,即使 ResourceManager 没有工作,集群也可以访问。

35.如何格式化HDFS?

♣ 提示:从格式化 HDFS 的命令开始尝试这个问题,然后解释该命令的作用。

Hadoop 分布式文件系统 (HDFS) 可以使用bin/hadoop namenode -format 命令进行格式化。此命令通过 NameNode 格式化 HDFS。该命令仅在第一次执行。格式化文件系统意味着初始化由 dfs.name.dir 变量指定的目录。如果您在现有文件系统上运行此命令,您将丢失存储在 NameNode 上的所有数据。格式化 Namenode 不会格式化 DataNode。它将格式化存储在 NameNode 上的 FsImage 和编辑日志数据,并将丢失有关存储在 HDFS 中的块位置的数据。

永远不要格式化、启动和运行 Hadoop 文件系统。您将丢失存储在 HDFS 中的所有数据。

36. Hadoop 可以使用 Windows 吗?

Red Hat Linux 和 Ubuntu 是 Hadoop 的最佳操作系统。Windows 不常用于安装 Hadoop,因为 Windows 有许多支持问题。因此,Windows 不是 Hadoop 的首选环境。

我希望这些 Hadoop 集群面试问题对您有所帮助。这只是我们 Hadoop 面试问题系列的开始。我建议您阅读整个系列,以深入了解 Hadoop 面试问题。加强你的基础永远不会太晚。在处理实际用例的同时,向行业专家学习 Hadoop。 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。