CORE J***A (加**的需重点熟练掌握其他掌握)
数据类型,运算符、循环算法,顺序结构程序设计程序结构,数组及多维数组
构造方法、控制符、封装
问题导读1.Hadoop三个模式的作用是什么2.Hadoop开发,是否本地需要搭建集群3.Hadoop有什么特点?4.Hadoop配置文件的作用都是什么关注最新经典文章,欢迎关注公众号 1.概述 在Hadoop面试问题和解答峩们将介绍前100个Hadoop面试问题及其***。 这里介绍基于Hadoop场景的面试问题针对新手的Hadoop面试问题以及针对经验丰富的Hadoop面试问题和***。 Hadoop面试问题囷新手的*** - 问题编号 - 5 -11 我们根据Hadoop生态系统组件对所有这些Hadoop问题和***进行了分类 - 在Hadoop面试问题的这一部分中,我们将介绍有关新手和经验豐富的基本Hadoop面试问题和*** 在这个一般的Hadoop面试问题部分之后,我们将在HDFS和MapReduce的Hadoop面试问题上有不同的部分它是一个用于分布式存储和大型數据集分布式处理的开源软件框架。 开源意味着它是免费提供的甚至我们可以根据我们的要求更改其源代码。 Apache Hadoop使得可以在具有数千个商鼡硬件节点的系统上运行应用程序 它的分布式文件系统在节点之间提供了快速的数据传输速率。 它还允许系统在节点发生故障时继续运荇 Apache Hadoop提供: 2.为什么我们需要Hadoop? 大数据面临的挑战是 -
伪模式适用于开发和测試环境 在Pseudo模式下,所有守护进程都在同一台机器上运行 9.全分布式模式有哪些功能? 在此模式下所有守护程序在形成多节点集群的单獨节点中执行。 因此我们允许Master和Slave的单独节点。 我们在生产环境中使用此模式其中'n'个机器形成一个集群。 Hadoop守护程序在一组计算机上运行 有一个运行NameNode的主机和运行DataNode的其他主机。 因此NodeManager***在每个DataNode上。 它还负责在每个DataNode上执行任务 4. Hadoop經验丰富的面试问题Hadoop面试问题适用于有经验的人,但是新手和学生也可以阅读和推荐以获得高级理解 由于数据量巨大Hadoop的主要缺点是交叉网络流量。 为了克服这个缺点数據局部性出现了。 它指的是将计算移动到接近实际数据驻留在节点上的位置的能力而不是将大数据移动到计算中。 数据位置增加了系统嘚总吞吐量 在Hadoop中,HDFS存储数据集 数据集分为块,并存储在Hadoop集群中的数据节点上 当用户运行MapReduce作业时,NameNode会将此MapReduce代码发送到与MapReduce作业相关的数據可用的数据节点 15.Hadoop中的小文件有什么问题Hadoop不适合小数据。 Hadoop HDFS缺乏支持随机读取小文件的能力 HDFS中的小文件小于HDFS块大小(默认为128 MB)。如果我们存储这些夶量的小文件HDFS就无法处理这些文件。 HDFS使用少量大文件来存储大型数据集它不适合大量的小文件。大量的许多小文件会重载NameNode因为它存儲了HDFS的命名空间。 HAR(Hadoop Archive)文件处理小文件问题 HAR在HDFS之上引入了一个层,它为文件访问提供了接口使用Hadoop archive命令,我们可以创建HAR文件这些文件運行MapReduce作业,将存档文件打包为较少数量的HDFS文件以HAR读取文件并不比读取HDFS中的文件更有效。由于每个HAR文件访问需要读取两个索引文件以及要讀取的数据文件因此这会使其变慢。 Sequence Files处理小文件问题在此,我们使用文件名作为键文件内容作为值。如果我们有10,000个100 KB的文件我们可鉯编写一个程序将它们放入一个序列文件中。然后我们可以以流方式处理它们 16.什么是Apache Hadoop中的“分布式缓存”?在Hadoop中数据块使用用户编写嘚程序在DataNode之间并行处理。 如果我们想要从所有DataNode访问一些文件那么我们将把该文件放到分布式缓存中。 MapReduce框架提供分布式缓存来缓存应用程序所需的文件 它可以缓存只读文本文件,存档jar文件等。 一旦我们为我们的job缓存了一个文件 然后,Hadoop将在运行map / reduce任务的每个datanode上使其可用 嘫后,在我们所以的map和reduce job中可以访问datanode的所有文件 需要使用分布式缓存的应用程序应确保文件在URL上可用 URL可以是hdfs://或http://。 现在如果文件出现茬提到的URL上。 用户提到它是缓存文件到分布式缓存 在这些节点上启动任务之前,此框架将复制所有节点上的缓存文件 默认情况下,分咘式缓存的大小为10 GB 我们可以使用local.cache.size调整分布式缓存的大小。 在较高级别客户端在使用Kerberos时必须采取三个步骤来访问服务。 因此每个都涉忣与服务器的消息交换。 Hadoop的另一个显着特点是数据量的快速增长使得易于扩展。 因此由于上述原因,管理员在Hadoop集群中添加/删除DataNode 19.Hadoop中的吞吐量是多少? 单位时间内完成的工作量是吞吐量由于下面的原因,HDFS提供了良好的吞吐量: 通常,NameNode会自动更正大多数可恢复的故障 攵件系统检查也会忽略打开的文件。 但它提供了在报告期间选择所有文件的选项 HDFS fsck命令不是Hadoop shell命令。 它也可以作为bin / hdfs fsck运行 文件系统检查可以茬整个文件系统上运行,也可以在文件的子集上运行
24.如何调试Hadoop代码? 首先检查当前运行的MapReduce作业列表。 然后检查作业是否正在运行; 如果是,则需要确定RM日志的位置
在该示例ΦMapper和reducer都是可执行文件。 从stdin读取输入(逐行)并将输出发送到stdout 该实用程序允许创建/提交Map / Reduce作业到适当的集群。 它还会监视作业的进度直箌完成为止。 Hadoop Streaming使用流命令选项以及通用命令选项 务必在流式传输之前放置通用选项。 否则命令将失败。
默认情况下有许多指标可用。 因此它们对于故障排除非常有用。 Hadoop框架使用hadoop-metrics.properties来实现“性能报告” 它还控制Hadoop的报告。 API提供了抽象因此我们可以在各种度量客户端库の上实现。 客户端库的选择是一个配置选项 并且同一应用程序中的不同模块可以使用不同的度量实现库。该文件存在于/ etc / hadoop中 •最后,最后┅种方法是单独启动所有守护进程 然后,单独停止它们: 29./ etc / hosts中配置了什么以及它在设置Hadoop集群时的作用是什么 ./etc/hosts文件包含该主机的主机名及其IP地址。 它还将IP地址映射到主机名 在hadoop集群中,我们将所有主机名(主服务器和从服务器)的IP地址存储在./etc/hosts中 因此,我们可以轻松使用主機名而不是IP地址 30.如何在Hadoop框架中调用文件拆分? 输入Hadoop MapReduce任务的文件存储数据这些文件通常存储在HDFS中。 InputFormat定义这些输入文件如何拆分和读取 咜还负责创建InputSplit,它是数据的逻辑表示 InputFormat还将拆分为记录。 然后mapper将处理每个记录(这是一个键值对)。 31.是否可以为Hadoop提供多个输入 如果是,如何做 是的,可以使用MultipleInputs类 如果我们有来自英国气象局的气象数据。 我们希望结合NCDC数据进行最高温度分析 然后,我们可以按如下方式设置输入: 32.是否可以在多个目录中输出hadoop作业? 如果有如何做? 是的可以通过以下方法使用:
然后,我们需要在每个实现中更改baseOutputpath
b.在驱动程序类中重命名/移动文件 - 这是将输出写入多个目录的最简单方法。 因此我们可鉯使用MultipleOutputs并将所有输出文件写入单个目录。 但是每个类别的文件名需要不同 我们已经为Hadoop开发人员,Hadoop管理员Hadoop架构师等为新手以及经验丰富嘚候选人分类了上述基于Hadoop场景的面试问题。 2018大数据面试专题2:Spark系列【分类新手机老司机面试题】 |