30 多个 Hadoop 面试问题和答案

好吧,来自福布斯的统计数据表明,多达 90% 的世界组织使用大数据分析来创建他们的投资报告。

随着大数据的日益普及,因此 Hadoop 的工作机会比以前激增。

因此,为了帮助您获得 Hadoop 专家的角色,您可以使用我们在本文中为您整理的这些面试问题和答案来帮助您通过面试。

也许了解使 Hadoop 和大数据角色有利可图的薪资范围等事实会激励您通过面试,对吧? 🤔

  • 根据 indeed.com 的数据,美国大数据 Hadoop 开发人员的平均工资为 144,000 美元。
  • 根据 itjobswatch.co.uk,大数据 Hadoop 开发人员的平均工资为 66,750 英镑。
  • 在印度,indeed.com 的消息来源称,他们的平均工资为 16,00,000 卢比。

很赚钱,你不觉得吗? 现在,让我们开始了解 Hadoop。

什么是 Hadoop?

Hadoop 是一种用 Java 编写的流行框架,它使用编程模型来处理、存储和分析大型数据集。

默认情况下,它的设计允许从单个服务器扩展到提供本地计算和存储的多台机器。 此外,它检测和处理应用层故障的能力会导致高可用性服务,这使得 Hadoop 非常可靠。

让我们直接进入常见的 Hadoop 面试问题及其正确答案。

Hadoop的面试题及答案

Hadoop中的存储单元是什么?

答:Hadoop的存储单元称为Hadoop分布式文件系统(HDFS)。

网络附加存储与 Hadoop 分布式文件系统有何不同?

答:HDFS 是 Hadoop 的主存储,是一种分布式文件系统,使用商品硬件存储大量文件。 另一方面,NAS 是一种文件级计算机数据存储服务器,它为异构客户端组提供数据访问权限。

  您应该停止使用的 10 个最常见的密码

NAS 中的数据存储在专用硬件上,而 HDFS 将数据块分布到 Hadoop 集群中的所有机器上。

NAS 使用高端存储设备,成本较高,而 HDFS 使用的商品硬件具有成本效益。

NAS 将数据与计算分开存储,因此不适合 MapReduce。 相反,HDFS 的设计允许它与 MapReduce 框架一起工作。 计算移动到 MapReduce 框架中的数据,而不是数据移动到计算。

解释 Hadoop 和 Shuffling 中的 MapReduce

回答:MapReduce 指的是 Hadoop 程序执行的两项不同任务,以实现跨 Hadoop 集群中成百上千台服务器的大规模可扩展性。 另一方面,Shuffling 将映射输出从 Mappers 传输到 MapReduce 中必要的 Reducer。

一瞥 Apache Pig 架构

Apache Pig 架构

答:Apache Pig 架构有一个 Pig Latin 解释器,它使用 Pig Latin 脚本处理和分析大型数据集。

Apache pig 还包含一组数据集,在这些数据集上执行连接、加载、过滤、排序和分组等数据操作。

Pig Latin 语言使用 Grant shell、UDF 和嵌入式等执行机制来编写执行所需任务的 Pig 脚本。

Pig 通过将这些编写的脚本转换为 Map-Reduce 作业系列,使程序员的工作更加轻松。

Apache Pig 架构组件包括:

  • 解析器——它通过检查脚本的语法和执行类型检查来处理 Pig 脚本。 解析器的输出表示 Pig Latin 的语句和逻辑运算符,称为 DAG(有向无环图)。
  • 优化器——优化器在 DAG 上实现逻辑优化,如投影和下推。
  • 编译器——将优化器优化后的逻辑计划编译成一系列 MapReduce 作业。
  • 执行引擎——这是将 MapReduce 作业最终执行到所需输出的地方。
  • 执行模式——Apache pig中的执行模式主要有local和Map Reduce两种。

答:Local Metastore 中的 Metastore 服务与 Hive 在同一 JVM 中运行,但连接到在同一台或远程计算机上的单独进程中运行的数据库。 另一方面,Remote Metastore 中的 Metastore 在其独立于 Hive 服务 JVM 的 JVM 中运行。

大数据的五个V是什么?

答:这五个V代表大数据的主要特征。 他们包括:

  • 价值:大数据寻求通过高投资回报率 (ROI) 为在其数据运营中使用大数据的组织提供显着收益。 大数据通过其洞察力发现和模式识别带来这种价值,从而带来更牢固的客户关系和更有效的运营,以及其他好处。
  • 多样性:这表示收集的数据类型类型的异构性。 各种格式包括 CSV、视频、音频等。
  • 卷:这定义了组织管理和分析的数据的重要数量和大小。 该数据描述了指数增长。
  • 速度:这是数据增长的指数速度。
  • 准确性:准确性是指由于数据不完整或不一致而导致可用数据“不确定”或“不准确”的程度。

解释 Pig Latin 的不同数据类型。

答:Pig Latin 中的数据类型包括原子数据类型和复杂数据类型。

原子数据类型是所有其他语言中使用的基本数据类型。 它们包括以下内容:

  • Int——这种数据类型定义了一个带符号的 32 位整数。 示例:13
  • Long – Long 定义一个 64 位整数。 示例:10L
  • Float——定义一个带符号的 32 位浮点数。 示例:2.5F
  • 双精度 – 定义有符号的 64 位浮点数。 示例:23.4
  • 布尔值——定义一个布尔值。 它包括:真/假
  • 日期时间 – 定义日期时间值。 示例:1980-01-01T00:00.00.000+00:00
  10 个最佳 API 开发和测试工具

复杂数据类型包括:

  • Map- Map指的是键值对集合。 例子: [‘color’#’yellow’, ‘number’#3]
  • Bag——它是一组元组的集合,它使用“{}”符号。 示例:{(亨利,32 岁),(基蒂,47 岁)}
  • 元组——一个元组定义了一组有序的字段。 示例:(年龄,33 岁)

什么是 Apache Oozie 和 Apache ZooKeeper?

答:Apache Oozie 是一个 Hadoop 调度程序,负责将 Hadoop 作业调度和绑定在一起作为单个逻辑工作。

另一方面,Apache Zookeeper 在分布式环境中协调各种服务。 它通过简单地公开同步、分组、配置维护和命名等简单服务来节省开发人员的时间。 Apache Zookeeper 还为排队和领导人选举提供现成的支持。

Combiner、RecordReader 和 Partitioner 在 MapReduce 操作中的作用是什么?

答案:组合器就像一个迷你减速器。 它接收并处理来自 map 任务的数据,然后将数据的输出传递给 reducer 阶段。

RecordHeader 与 InputSplit 通信并将数据转换为键值对以供映射器适当读取。

Partitioner 负责决定汇总数据所需的缩减任务数量,并确认组合器输出如何发送到缩减器。 分区器还控制中间映射输出的关键分区。

提及不同供应商特定的 Hadoop 发行版。

答:扩展 Hadoop 功能的各种供应商包括:

  • IBM 开放平台。
  • Cloudera CDH Hadoop 发行版
  • MapR Hadoop 分布
  • 亚马逊弹性 MapReduce
  • Hortonworks 数据平台(HDP)
  • 关键大数据套件
  • Datastax 企业分析
  • Microsoft Azure 的 HDInsight – 基于云的 Hadoop 分发。

为什么 HDFS 是容错的?

答:HDFS将数据复制到不同的DataNode上,具有容错性。 将数据存储在不同的节点中允许在一种模式崩溃时从其他节点检索。

区分联合和高可用性。

答:HDFS Federation 提供容错能力,允许在一个节点崩溃时在一个节点中连续传输数据。 另一方面,高可用性需要两台独立的机器分别在第一台和第二台机器上配置活动 NameNode 和辅助 NameNode。

Federation 可以有无限数量的不相关的NameNode,而在High availability 中,只有两个相关的NameNode,active 和standby,它们是连续工作的。

联盟中的 NameNode 共享一个元数据池,每个 NameNode 都有自己的专用池。 然而,在高可用性中,活动 NameNode 一次运行一个,而备用 NameNode 保持空闲状态,只是偶尔更新它们的元数据。

如何查找块状态和文件系统健康状况?

回答:您在 root 用户级别和单个目录下使用 hdfs fsck / 命令来检查 HDFS 文件系统的健康状态。

使用中的 HDFS fsck 命令:

hdfs fsck / -files --blocks –locations> dfs-fsck.log

命令说明:

  • -files:打印正在检查的文件。
  • –locations:检查时打印所有方块的位置。

检查块状态的命令:

hdfs fsck <path> -files -blocks
  • :从此处传递的路径开始检查。
  • – blocks:它在检查期间打印文件块

什么时候使用 rmadmin-refreshNodes 和 dfsadmin-refreshNodes 命令?

答:这两条命令有助于在调测过程中或节点调测完成后刷新节点信息。

dfsadmin-refreshNodes 命令运行 HDFS 客户端并刷新 NameNode 的节点配置。 另一方面,rmadmin-refreshNodes 命令执行 ResourceManager 的管理任务。

什么是检查站?

答:检查点是一种将文件系统的最后更改与最近的 FSImage 合并的操作,以便编辑日志文件保持足够小以加快启动 NameNode 的过程。 Checkpoint 发生在 Secondary NameNode 中。

为什么我们将 HDFS 用于具有大数据集的应用程序?

答:HDFS提供了DataNode和NameNode架构,实现了分布式文件系统。

这两种架构通过高度可扩展的 Hadoop 集群提供对数据的高性能访问。 它的 NameNode 将文件系统的元数据存储在 RAM 中,这导致内存量限制了 HDFS 文件系统文件的数量。

“jps”命令有什么作用?

答:Java 虚拟机进程状态 (JPS) 命令检查特定的 Hadoop 守护进程,包括 NodeManager、DataNode、NameNode 和 ResourceManager,是否正在运行。 需要从root运行该命令,查看Host中正在运行的节点。

Hadoop 中的“推测执行”是什么?

答:这是一个过程,Hadoop 中的主节点不是修复检测到的慢速任务,而是在另一个节点上启动相同任务的不同实例作为备份任务(推测任务)。 推测执行可以节省大量时间,尤其是在密集的工作负载环境中。

说出 Hadoop 可以运行的三种模式。

答:Hadoop 运行的三个主要节点包括:

  • 独立节点是使用本地文件系统和单个 Java 进程运行 Hadoop 服务的默认模式。
  • 伪分布式节点使用单节点 Hadoop 部署执行所有 Hadoop 服务。
  • 全分布式节点使用单独的节点运行 Hadoop 主从服务。

什么是 UDF?

回答:UDF(用户定义函数)允许您编写自定义函数,您可以使用这些函数在 Impala 查询期间处理列值。

什么是 DistCp?

答:简而言之,DistCp 或 Distributed Copy 是用于大型集群间或集群内数据复制的有用工具。 使用 MapReduce,DistCp 有效地实现了大量数据的分布式副本,以及其他任务,如错误处理、恢复和报告。

回答:Hive metastore 是一项服务,用于将 Hive 表的 Apache Hive 元数据存储在关系数据库(如 MySQL)中。 它提供了允许对元数据进行分权访问的 Metastore 服务 API。

定义 RDD。

答:RDD,代表弹性分布式数据集,是 Spark 的数据结构,是在不同集群节点上计算的数据元素的不可变分布式集合。

如何将原生库包含在 YARN 作业中?

回答:您可以使用 -Djava.library 来实现它。 命令上的路径选项或通过使用以下格式在 .bashrc 文件中设置 LD+LIBRARY_PATH:

<property>
<name>mapreduce.map.env</name>
<value>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/my/libs</value>
</property>

解释 HBase 中的“WAL”。

答:Write Ahead Log(WAL)是一种恢复协议,将HBase中的MemStore数据变化记录到基于文件的存储中。 如果 RegionalServer 崩溃或在刷新 MemStore 之前,WAL 会恢复此数据。

YARN 是 Hadoop MapReduce 的替代品吗?

答:不,YARN 不是 Hadoop MapReduce 的替代品。 相反,一种称为 Hadoop 2.0 或 MapReduce 2 的强大技术支持 MapReduce。

HIVE 中的 ORDER BY 和 SORT BY 有什么区别?

回答:虽然这两个命令在 Hive 中以排序方式获取数据,但使用 SORT BY 的结果可能只是部分排序。

此外,SORT BY 需要一个 reducer 来对行进行排序。 最终输出所需的这些 reducer 也可能是多个。 在这种情况下,最终输出可能是部分排序的。

另一方面,ORDER BY 只需要一个 reducer 来输出总订单。 您还可以使用减少总排序时间的 LIMIT 关键字。

Spark 和 Hadoop 有什么区别?

答:虽然 Hadoop 和 Spark 都是分布式处理框架,但它们的主要区别在于它们的处理方式。 Hadoop 对于批处理是高效的,而 Spark 对于实时数据处理是高效的。

此外,Hadoop 主要是将文件读写到 HDFS,而 Spark 使用 Resilient Distributed Dataset 概念在 RAM 中处理数据。

从他们的延迟来看,Hadoop是一个高延迟的计算框架,没有交互方式来处理数据,而Spark是一个低延迟的计算框架,以交互方式处理数据。

比较 Sqoop 和 Flume。

答:Sqoop 和 Flume 是 Hadoop 工具,可以收集从各种来源收集的数据并将数据加载到 HDFS。

  • Sqoop(SQL-to-Hadoop) 从数据库中提取结构化数据,包括 Teradata、MySQL、Oracle 等,而 Flume 用于从数据库源中提取非结构化数据并将其加载到 HDFS。
  • 在事件驱动方面,Flume是事件驱动的,而Sqoop不是事件驱动的。
  • Sqoop 使用基于连接器的架构,其中连接器知道如何连接到不同的数据源。 Flume 使用基于代理的架构,编写的代码是负责获取数据的代理。
  • 由于 Flume 的分布式特性,它可以轻松地收集和聚合数据。 Sqoop 对于并行数据传输很有用,这会导致输出在多个文件中。

解释 BloomMapFile。

答:BloomMapFile 是一个扩展 MapFile 类的类,并使用动态布隆过滤器为键提供快速成员资格测试。

列出 HiveQL 和 PigLatin 之间的区别。

答:HiveQL 是一种类似于 SQL 的声明性语言,而 PigLatin 是一种高级过程化数据流语言。

什么是数据清理?

答:数据清理是消除或修复已识别数据错误的关键过程,这些错误包括数据集中的不正确、不完整、损坏、重复和格式错误的数据。

此过程旨在提高数据质量,并提供组织内有效决策所需的更准确、一致和可靠的信息。

结语💃

随着当前大数据和 Hadoop 工作机会的激增,您可能希望提高进入的机会。本文的 Hadoop 面试问题和答案将帮助您在即将到来的面试中脱颖而出。

接下来,您可以查看学习大数据和 Hadoop 的好资源。

祝你好运! 👍