返回顶部
首页 > 资讯 > 精选 >Hadoop面试题和答案有哪些
  • 423
分享到

Hadoop面试题和答案有哪些

2023-06-04 03:06:27 423人浏览 独家记忆
摘要

本篇内容介绍了“hadoop面试题和答案有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!      &nb

本篇内容介绍了“hadoop面试题和答案有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

       一、什么是Hadoop?

  Hadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据。总之,Hadoop包括以下内容:

  hdfs(Hadoop Distributed File System,Hadoop分布式文件系统):HDFS允许你以一种分布式和冗余的方式存储大量数据。例如,1 GB(即1024 MB)文本文件可以拆分为16 * 128MB文件,并存储在Hadoop集群中的8个不同节点上。每个分裂可以复制3次,以实现容错,以便如果1个节点故障的话,也有备份。HDFS适用于顺序的“一次写入、多次读取”的类型访问。

  mapReduce:一个计算框架。它以分布式和并行的方式处理大量的数据。当你对所有年龄> 18的用户在上述1 GB文件上执行查询时,将会有“8个映射”函数并行运行,以在其128 MB拆分文件中提取年龄> 18的用户,然后“reduce”函数将运行以将所有单独的输出组合成单个最终结果。

  YARN(Yet Another Resource NaGotiator,又一资源定位器):用于作业调度和集群资源管理的框架。

  Hadoop生态系统,拥有15多种框架和工具,如Sqoop,Flume,kafka,Pig,Hivespark,Impala等,以便将数据摄入HDFS,在HDFS中转移数据(即变换,丰富,聚合等),并查询来自HDFS的数据用于商业智能和分析。

  某些工具(如Pig和Hive)是MapReduce上的抽象层,而Spark和Impala等其他工具则是来自MapReduce的改进架构/设计,用于显著提高的延迟以支持近实时(即NRT)和实时处理。

 二、基于Hadoop的数据中心的好处是什么?

  随着数据量和复杂性的增加,提高了整体SLA(即服务水平协议)。例如,“Shared Nothing”架构,并行处理,内存密集型处理框架,如Spark和Impala,以及YARN容量调度程序中的资源抢占。

  1、缩放数据仓库可能会很昂贵:添加额外的高端硬件容量以及获取数据仓库工具的许可证可能会显著增加成本。基于Hadoop的解决方案不仅在商品硬件节点和开源工具方面更便宜,而且还可以通过将数据转换卸载到Hadoop工具(如Spark和Impala)来补足数据仓库解决方案,从而更高效地并行处理大数据。这也将释放数据仓库资源。

  2、探索新的渠道和线索:Hadoop可以为数据科学家提供探索性的沙盒,以从社交媒体,日志文件,电子邮件等地方发现潜在的有价值的数据,这些数据通常在数据仓库中不可得。

  3、更好的灵活性:通常业务需求的改变,也需要对架构和报告进行更改。基于Hadoop的解决方案不仅可以灵活地处理不断发展的模式,还可以处理来自不同来源,如社交媒体,应用程序日志文件,image,pdf和文档文件的半结构化和非结构化数据。

  四、简单描述如何安装配置一个apache开源版hadoop,只描述即可,无需列出完整步骤,能列出步骤更好。

  1、安装jdk并配置环境变量(/etc/profile);

  2、关闭防火墙;

  3、配置hosts文件,方便hadoop通过主机名访问(/etc/hosts);

  4、设置ssh免密码登录;

  5、解压缩hadoop安装包,并配置环境变量;

  6、修改配置文件($HADOOP_HOME/conf);hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml;

  7、格式化hdfs文件系统(hadoop namenode -fORMat);

  8、启动hadoop($HADOOP_HOME/bin/start-all.sh);

  9、使用jps查看进程。

  五、请列出正常工作的hadoop集群中hadoop都分别需要启动那些进程,他们的作用分别是什么,尽可能写的全面些。

  1、NameNode: HDFS的守护进程,负责记录文件是如何分割成数据块,以及这些数据块分别被存储到那些数据节点上,它的主要功能是对内存及io进行集中管理。

  2、Secondary NameNode:辅助后台程序,与NameNode进行通信,以便定期保存HDFS元数据的快照。

  3、DataNode:负责把HDFS数据块读写到本地的文件系统。

  4、JobTracker:负责分配task,并监控所有运行的task。

  5、TaskTracker:负责执行具体的task,并与JobTracker进行交互。

  六、请列出你所知道的hadoop调度器,并简要说明其工作方法

  比较流行的三种调度器有:默认调度器FIFO,计算能力调度器Capacity Scheduler,公平调度器Fair Scheduler

  1、默认调度器FIFO:hadoop中默认的调度器,采用先进先出的原则。

  2、计算能力调度器Capacity Scheduler:选择占用资源小,优先级高的先执行。

  3、公平调度器Fair Scheduler:同一队列中的作业公平共享队列中所有资源。

  七、Hive有那些方式保存元数据的,各有那些特点。

  1、内存数据库derby,较小,不常用;

  2、本地mysql,较常用;

  3、远程Mysql,不常用。

  八、简述hadoop实现Join的几种方法。

  1、reduce side join

  reduce side join是一种最简单的join方式,其主要思想如下:

  在map阶段,map函数同时读取两个文件File1和File2,为了区分两种来源的key/value数据对,对每条数据打一个标签(tag),比如:tag=0表示来自文件File1,tag=2表示来自文件File2。即:map阶段的主要任务是对不同文件中的数据打标签。

  在reduce阶段,reduce函数获取key相同的来自File1和File2文件的value list, 然后对于同一个key,对File1和File2中的数据进行join(笛卡尔乘积)。即:reduce阶段进行实际的连接操作。

  2、map side join

  之所以存在reduce side join,是因为在map阶段不能获取所有需要的join字段,即:同一个key对应的字段可能位于不同map中。Reduce side join是非常低效的,因为shuffle阶段要进行大量的数据传输。

  Map side join是针对以下场景进行的优化:两个待连接表中,有一个表非常大,而另一个表非常小,以至于小表可以直接存放到内存中。这样,我们可以将小表复制多份,让每个map task内存中存在一份(比如存放到hash table中),然后只扫描大表:对于大表中的每一条记录key/value,在hash table中查找是否有相同的key的记录,如果有,则连接后输出即可。

  为了支持文件的复制,Hadoop提供了一个类DistributedCache,使用该类的方法如下:

  (1)用户使用静态方法

  DistributedCache.addCacheFile()指定要复制的文件,它的参数是文件的URI(如果是HDFS上的文件,可以这样:hdfs://namenode:9000/home/XXX/file,其中9000是自己配置的NameNode端口号)。

  JobTracker在作业启动之前会获取这个URI列表,并将相应的文件拷贝到各个TaskTracker的本地磁盘上。

  (2)用户使用

  DistributedCache.getLocalCacheFiles()方法获取文件目录,并使用标准的文件读写api读取相应的文件。

  3、SemiJoin

  SemiJoin,也叫半连接,是从分布式数据库中借鉴过来的方法。它的产生动机是:对于reduce side join,跨机器的数据传输量非常大,这成了join操作的一个瓶颈,如果能够在map端过滤掉不会参加join操作的数据,则可以大大节省网络IO。

  实现方法很简单:选取一个小表,假设是File1,将其参与join的key抽取出来,保存到文件File3中,File3文件一般很小,可以放到内存中。在map阶段,使用DistributedCache将File3复制到各个TaskTracker上,然后将File2中不在File3中的key对应的记录过滤掉,剩下的reduce阶段的工作与reduce side join相同。

  4、reduce side join + BloomFilter

  在某些情况下,SemiJoin抽取出来的小表的key集合在内存中仍然存放不下,这时候可以使用BloomFiler以节省空间。

  BloomFilter最常见的作用是:判断某个元素是否在一个集合里面。它最重要的两个方法是:add() 和contains()。最大的特点是不会存在false negative,即:如果contains()返回false,则该元素一定不在集合中,但会存在一定的true negative,即:如果contains()返回true,则该元素可能在集合中。

  因而可将小表中的key保存到BloomFilter中,在map阶段过滤大表,可能有一些不在小表中的记录没有过滤掉(但是在小表中的记录一定不会过滤掉),这没关系,只不过增加了少量的网络IO而已。

“Hadoop面试题和答案有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Hadoop面试题和答案有哪些

本文链接: https://lsjlt.com/news/236365.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Hadoop面试题和答案有哪些
    本篇内容介绍了“Hadoop面试题和答案有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!      &nb...
    99+
    2023-06-04
  • Python经典面试题和答案有哪些
    这篇文章主要介绍了Python经典面试题和答案有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python经典面试题和答案有哪些文章都会有所收获,下面我们一起来看看吧。  ...
    99+
    2024-04-02
  • SQL有哪些面试题及答案
    本篇内容主要讲解“SQL有哪些面试题及答案”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL有哪些面试题及答案”吧!到此,相信大家对“SQL有哪些面试题及答案...
    99+
    2024-04-02
  • Python有哪些面试题及答案
    本篇内容主要讲解“Python有哪些面试题及答案”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python有哪些面试题及答案”吧!Q1、Python中的列表和元组有什么区别?Q2、Python的...
    99+
    2023-07-02
  • PHP有哪些面试题及答案
    今天小编给大家分享一下PHP有哪些面试题及答案的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、什么事面向对象?主要特征是什...
    99+
    2023-07-02
  • Vue.js面试题及答案有哪些
    这篇文章主要介绍了Vue.js面试题及答案有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue.js面试题及答案有哪些文章都会有所收获,下面我们一起来看看吧。一、Vue.js基本问题1.1.Vue 响应式...
    99+
    2023-07-02
  • Vue面试题及答案有哪些
    这篇文章主要介绍了Vue面试题及答案有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue面试题及答案有哪些文章都会有所收获,下面我们一起来看看吧。1. 简述 Vue 生命周期答题思路:Vue 生命周期是什...
    99+
    2023-07-04
  • Dubbo面试题及答案有哪些
    本篇内容介绍了“Dubbo面试题及答案有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、Dubbo是什么  Dubbo是一个分布式...
    99+
    2023-06-04
  • ActiveMQ面试题及答案有哪些
    这篇文章主要介绍“ActiveMQ面试题及答案有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ActiveMQ面试题及答案有哪些”文章能帮助大家解决问题。    1、什么是 ...
    99+
    2023-06-04
  • Kubernetes面试题及答案有哪些
    本篇内容介绍了“Kubernetes面试题及答案有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、什么是Kubernetes  K...
    99+
    2023-06-04
  • Redux面试题及答案有哪些
    本文小编为大家详细介绍“Redux面试题及答案有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Redux面试题及答案有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Redux是什么Redux是当今市场上...
    99+
    2023-06-04
  • GO面试题及答案有哪些
    这篇文章主要介绍“GO面试题及答案有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“GO面试题及答案有哪些”文章能帮助大家解决问题。slice 扩容机制GO1.17版本及之前当新切片需要的容量ca...
    99+
    2023-07-04
  • SpringBoot有哪些面试题及答案
    这篇文章主要介绍“SpringBoot有哪些面试题及答案”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot有哪些面试题及答案”文章能帮助大家解决问题。1. 什么是 Spring Bo...
    99+
    2023-07-05
  • Java集合面试问题和答案有哪些
    这篇文章主要讲解了“Java集合面试问题和答案有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java集合面试问题和答案有哪些”吧!1.Java集合框架是什么?说出一些集合框架的优点?每...
    99+
    2023-06-17
  • Redis的面试题及答案有哪些
    这篇文章主要讲解了“Redis的面试题及答案有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis的面试题及答案有哪些”吧!说说Redis基本数据类型有哪些吧字符串:redis没有直...
    99+
    2023-06-27
  • Spring MVC面试题及答案有哪些
    本篇内容介绍了“Spring MVC面试题及答案有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、 MVC是设计模式的缩写,它代表...
    99+
    2023-06-02
  • spring cloud面试题及答案有哪些
    这篇“spring cloud面试题及答案有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“spring cloud面试题...
    99+
    2023-06-04
  • Python常见面试题及答案有哪些
    这篇文章主要介绍“Python常见面试题及答案有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python常见面试题及答案有哪些”文章能帮助大家解决问题。  1...
    99+
    2024-04-02
  • Web前端面试题及答案有哪些
    本篇内容主要讲解“Web前端面试题及答案有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Web前端面试题及答案有哪些”吧!js面试题1、js数据类型基本数据...
    99+
    2024-04-02
  • 常见Vue面试题及答案有哪些
    这篇文章主要介绍“常见Vue面试题及答案有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“常见Vue面试题及答案有哪些”文章能帮助大家解决问题。Vue 常见面试题总结MVVM模型?MVVM,是Mo...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作