📅  最后修改于: 2020-12-04 02:18:34             🧑  作者: Mango
在许多公司中都提供了Hadoop面试问题和答案。让我们看一下最重要的Hadoop面试问题列表。
Hadoop是一个分布式计算平台。它是用Java编写的。它包含Google File System和MapReduce之类的功能。
Java 1.6.x或更高版本适合Hadoop,最好是Sun。 Linux和Windows是Hadoop支持的操作系统,但是BSD,Mac OS / X和Solaris因其工作而闻名。
Hadoop可以使用ECC内存在具有4-8 GB RAM的双处理器/双核计算机上运行。这取决于工作流程的需求。
这些是Hadoop中定义的最常见的输入格式:
TextInputFormat是默认的输入格式。
大数据可以使用以下功能进行分类:
为了使媒体对象从一侧浮动到另一侧,我们使用此类。
我们从DOM组件的方框中使用引导中的面板。
按钮组用于在同一行中放置多个按钮。
“ jps”命令用于检索运行Hadoop集群的守护程序的状态。
Hadoop作业运行时,它将输入文件拆分为多个块,并将每个拆分分配给一个映射器进行处理。它称为InputSplit。
在TextInputFormat中,文本文件中的每一行都是一条记录。值是该行的内容,而键是该行的字节偏移量。例如,键:longWritable,值:文本
在Hadoop中,SequenceFileInputFormat用于顺序读取文件。它是一种特定的压缩二进制文件格式,可在一个MapReduce作业的输出到另一个MapReduce作业的输入之间传递数据。
Hadoop分为以下5个部分:
InputSplit被分配了作品,但不知道如何访问它。记录持有者类完全负责从其源中加载数据并将其转换为适合Mapper读取的密钥对。可以通过输入格式定义RecordReader的实例。
JobTracker是Hadoop中的一项服务,可在集群上运行MapReduce作业。
WebDAV是HTTP的一组扩展,用于支持编辑和上传文件。在大多数操作系统上,WebDAV共享可以作为文件系统挂载,因此可以通过在WebDAV上公开HDFS将HDFS作为标准文件系统来访问。
Sqoop是用于在关系数据库管理系统(RDBMS)和Hadoop HDFS之间传输数据的工具。通过使用Sqoop,您可以将数据从MySQL或Oracle等RDBMS传输到HDFS,也可以将数据从HDFS文件导出到RDBMS。
这些是JobTracker的主要任务:
TaskTracker是集群中的一个节点,可以从JobTracker接受MapReduce和Shuffle等任务。
Map / Reduce作业是一种编程范例,用于允许在数千台服务器上进行大规模扩展。
MapReduce是指Hadoop执行的两个不同且不同的任务。第一步是映射作业,该作业将获取一组数据并将其转换为另一组数据,第二步是还原作业。它以映射的输出作为输入,并将那些数据元组压缩为较小的元组集。
映射:在Hadoop中,映射是HDFS查询解决方案的一个阶段。映射从输入位置读取数据,并根据输入类型输出键值对。
Reducer:在Hadoop中,Reducer收集由映射器生成的输出,对其进行处理,并创建自己的最终输出。
混洗是一个过程,用于执行排序并将映射输出作为输入传输到reducer。
NameNode是一个节点,Hadoop在其中将所有文件位置信息存储在HDFS(Hadoop分布式文件系统)中。我们可以说NameNode是HDFS文件系统的核心,HDFS文件系统负责保持文件系统中所有文件的记录,并在整个群集或多台计算机上跟踪文件数据。
心跳信号是在数据节点和名称节点之间以及任务跟踪器和作业跟踪器之间使用的信号。如果名称节点或作业跟踪器没有响应该信号,则认为数据节点或任务跟踪器存在问题。
Hadoop中有一种非常独特的索引编制方式。一旦按照块大小存储了数据,HDFS将继续存储数据的最后一部分,该部分指定了数据下一部分的位置。
如果数据节点失败,则作业跟踪器和名称节点将检测到该失败。之后,所有任务都将重新安排在发生故障的节点上,然后名称节点会将用户数据复制到另一个节点。
Hadoop流是一个实用程序,可让您创建和运行映射/减少作业。它是一个通用API,它允许将以任何语言编写的程序用作Hadoop映射器。
组合器是一种微型缩减过程,仅对Mapper生成的数据起作用。当Mapper发出数据时,合并器将其作为输入接收,并将输出发送给reducer。
以下是Hadoop中的三个配置文件:
以下是使用Hadoop的网络要求:
存储节点:存储节点是文件系统所在的机器或计算机,用于存储处理数据。
计算节点:计算节点是将在其中执行实际业务逻辑的机器或计算机。
如果您具有C,C++,PHP, Python,Java等任何编程语言的背景知识,那可能会很有帮助。但是如果您不熟悉Java,则有必要学习Java并获得SQL的基本知识。
调试Hadoop代码的方法有很多,但是最受欢迎的方法是:
是的,有可能。输入格式类提供了将多个目录插入作为Hadoop作业输入的方法。
在Hadoop中,作业分为多个小部分,称为任务。
数据的逻辑划分称为输入拆分,数据的物理划分称为HDFS块。
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. |
HDFS数据块分布在群集中所有计算机的本地驱动器上,而NAS数据存储在专用硬件上。
Hadoop使您可以增加或减少映射器的数量,而不必担心要处理的数据量。
分布式缓存是MapReduce框架提供的功能。它在执行作业时用于缓存文件(文本,存档等)。在该节点上执行任何任务之前,框架会将必需的文件复制到从节点。
Hadoop工作-列表
Hadoop作业-杀死jobID
JobTracker是一项庞大的服务,用于在Hadoop中提交和跟踪MapReduce作业。任何Hadoop群集上都只能运行一个JobTracker进程。 JobTracker在其自己的JVM进程中运行它。
Hadoop中JobTracker的功能:
TaskTracker会定期将心跳消息发送到JobTracker,以确保它仍然有效。此消息还会通知JobTracker可用插槽的数量。此返回消息更新JobTracker以了解在何处计划任务。
不,有很多方法可以处理非Java代码。 HadoopStreaming允许将任何shell命令用作映射或归约函数。
Hadoop使用HBase数据存储组件。