专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 职业指南 高频出现的程序员hadoop面试题及答案

高频出现的程序员hadoop面试题及答案

更新时间:2022-12-29 14:57:16 来源:星辉 浏览876次

大家的每一次面试都是一个重要的转机,能不能抓住这个机遇,就给看大家对于面试的信息应用掌握了多少,掌握当下最紧缺的技术就是进入到大厂的关键,hadoop的相关面试题无论如何都是需要掌握的技术知识,今天的这套面试题将在未来职场,让你脱颖而出!

hadoop面试题及答案

1、什么是Hadoop及其组件

Hadoop是一个开源分布式计算平台架构,基于apache协议发布,由java语言开发。主要包括

  • HDFS(分布式文件管理系统)
  • MapReduce(分布式计算框架)
  • Hive(基于Hadoop的数据仓库)
  • Pig(基于Hadoop的数据流系统)
  • HBase(一个分布式面向列的数据库)
  • Spark(快速和通用计算的Hadoop数据引擎)
  • ZooKeeper(分布式协作服务)

2、Hadoop的守护进程

  • NameNode(元数据服务器)
  • 主节点,存储文件的元数据(文件名,文件目录结构,文件属性——生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等
  • SecondaryNameNode(辅助元数据服务器)
  • 用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据快照
  • DataNodes(块存储)
  • 在本地文件系统存储文件块数据,以及块数据校验
  • JobTracker(任务调度)
  • 负责接收用户提交的作业,负责启动、跟踪任务执行,每个 DataNode有一个TaskTracker,它们执行实际工作。
  • TaskTrackers(任务执行)
  • 负责执行由JobTracker分配的任务,管理各个任务在每个节点的执行情况。

3.YARN:Yet Another Resource Negotiator,是一种新的Hadoop资源管理器

  • ReasourManager

负责资源管理的,整个系统有且只有一个 RM ,来负责资源的调度。它也包含了两个主要的组件:定时调用器(Scheduler)以及应用管理器(ApplicationManager)。

  • ApplicationMaster

每当 Client 提交一个 Application 时候,就会新建一个 ApplicationMaster 。由这个 ApplicationMaster 去与 ResourceManager 申请容器资源,获得资源后会将要运行的程序发送到容器上启动,然后进行分布式计算。

  • NodeManager

NodeManager 是 ResourceManager 在每台机器的上代理,负责容器的管理,并监控他们的资源使用情况(cpu,内存,磁盘及网络等),以及向ResourceManager/Scheduler 提供这些资源使用报告。

  • Container

Container是YARN集群中资源的抽象,将NM上的资源进行量化,根据需要组装成一个个Container,然后服务于已授权资源的计算任务。计算任务在完成计算后,系统会回收资源,以供后续计算任务申请使用。Container包含两种资源:内存和CPU,后续Hadoop版本可能会增加硬盘、网络等资源。

4.HDFS:分布式文件管理系统

  • NameNode
  • SecondaryNameNode
  • DataNode

5.MapReduce:分布式计算框架,采用Master/Slave架构,1个JobTracker带多个TaskTracker

  • JobTracker
  • TaskTracker
  • MapTask
  • ReduceTask

6.一个MapReduce任务在提交阶段是如何对输入数据进行分片划分的?

通过InputSplit()函数来处理,设置分片数量为Math.max(minSize,Math.min(goalSize, blockSize)),一个数据片分配一个map任务。

7.MapReduce里的Combiner是做什么用的?什么情况下需要,和Reduce的区别是什么?

Combiner主要是在map完成后,reducer之前对数据做一次聚合,以减少数据传输的IO开销。

数据格式转换

  • map: (K1, V1) → list(K2, V2)
  • combine: (K2, list(V2)) → list(K2, V2)
  • reduce: (K2, list(V2)) → list(K3, V3)

注意:combine的输入和reduce的完全一致,输出和map的完全一致

Combiner和Reducer的区别在于运行的位置

Combiner是在每一个MapTask所在的节点运行;

Reducer是接收全局所有Mapper的输出结果;

以上就是“高频出现的程序员hadoop面试题及答案”,你能回答上来吗?如果想要了解更多的Java面试题相关内容,可以关注星辉Java官网。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>