热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分享要面试的你一套大数据技术Hadoop面试题(附答案)

单项选择题1.下面哪个程序负责HDFS数据存储。a)NameNodeb)Jobtrackerc)Datanoded)secondaryNameNodee)tas

给下周要面试的你一套大数据技术Hadoop面试题(附答案)


单项选择题



  • 1. 下面哪个程序负责 HDFS 数据存储。  

a)NameNode  b)Jobtracker  c)Datanode  d)secondaryNameNode

e)tasktracker


  • 2. HDfS 中的 block 默认保存几份?  

a)3 份  b)2 份  c)1 份 d)不确定


  • 3. 下列哪个程序通常与 NameNode 在一个节点启动? 关注作者:需要大数据学习视频资料,其他文章可以找到我

a)SecondaryNameNode

b)DataNode

c)TaskTracker

d)Jobtracker


  • 4. Hadoop 作者  

a)Martin Fowler

b)Kent Beck

c)Doug cutting


  • 5. HDFS 默认 Block Size  

a)32MB

b)64MB

c)128MB


  • 6. 下列哪项通常是集群的最主要瓶颈  

a)CPU

b)网络

c)磁盘

d)内存


  • 7. 关于 SecondaryNameNode 哪项是正确的?  

a)它是 NameNode 的热备

b)它对内存没有要求

c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间

d)SecondaryNameNode 应与 NameNode 部署到一个节点


多选题



  • 8. 下列哪项可以作为集群的管理工具  

a)Puppet

b)Pdsh

c)Cloudera Manager

d)d)Zookeeper


  • 9. 配置机架感知的下面哪项正确  

a)如果一个机架出问题,不会影响数据读写

b)写入数据的时候会写到不同机架的 DataNode 中

c)MapReduce 会根据机架获取离自己比较近的网络数据


  • 10. Client 端上传文件的时候下列哪项正确  

a)数据经过 NameNode 传递给 DataNode

b)Client 端将文件切分为 Block,依次上传

c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作


  • 11. 下列哪个是 Hadoop 运行的模式  

a)单机版

b)伪分布式

c)分布式


  • 12. Cloudera 提供哪几种安装 CDH 的方法  

a)Cloudera manager

b)Tar ball

c)Yum d)Rpm


判断题



  • 13. Ganglia 不仅可以进行监控,也可以进行告警。( )

  • 14. Block Size 是不可以修改的。( )

  • 15. Nagios 不可以监控 Hadoop 集群,因为它不提供 Hadoop 支持。( )

  • 16. 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。( )

  • 17. Cloudera CDH 是需要付费使用的。( )

  • 18. Hadoop 是 Java 开发的,所以 MapReduce 只支持 Java 语言编写。( )

  • 19. Hadoop 支持数据的随机读写。( )

  • 20. NameNode 负责管理 metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入 metadata 信息并反馈 client 端。( )

  • 21. NameNode 本地磁盘保存了 Block 的位置信息。( )

  • 22. DataNode 通过长连接与 NameNode 保持通信。( )

  • 23. Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。( )

  • 24. Slave 节点要存储数据,所以它的磁盘越大越好。( )

  • 25. hadoop dfsadmin –report 命令用于检测 HDFS 损坏块。( )

  • 26. Hadoop 默认调度器策略为 FIFO( )

  • 27. 集群内每个节点都应该配 RAID,这样避免单磁盘损坏,影响整个节点运行。( )

  • 28. 因为 HDFS 有多个副本,所以 NameNode 是不存在单点问题的。( )

  • 29. 每个 map 槽就是一个线程。( )

  • 30. Mapreduce 的 input split 就是一个 block。( )

  • 31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。( )

  • 32. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认是 200 GB。( )

  • 33. DataNode 首次加入 cluster 的时候,如果 log 中报告不兼容文件版本,那需要 NameNode执行“Hadoop namenode -format”操作格式化磁盘。( )别走开,答案在后面哦!

给下周要面试的你一套大数据技术Hadoop面试题(附答案)


答案单选题



  • 1.下面哪个程序负责 HDFS 数据存储。答案C datanode

a)NameNode  b)Jobtracker  c)Datanode  d)secondaryNameNode

e)tasktracker


  • 2. HDfS 中的 block 默认保存几份? 答案A默认3分  

a)3 份  b)2 份  c)1 份 d)不确定


  • 3. 下列哪个程序通常与 NameNode 在一个节点启动?答案D  

a)SecondaryNameNode

b)DataNode

c)TaskTracker

d)Jobtracker

此题分析:

hadoop的集群是基于master/slave模式,namenode和jobtracker属于master,datanode和tasktracker属于slave,master只有一个,而slave有多个SecondaryNameNode内存需求和NameNode在一个数量级上,所以通常secondary NameNode(运行在单独的物理机器上)和NameNode运行在不同的机器上。

JobTracker和TaskTrackerJobTracker 对应于 NameNodeTaskTracker 对应于 DataNodeDataNode 和NameNode 是针对数据存放来而言的

JobTracker和TaskTracker是对于MapReduce执行而言的

mapreduce中几个主要概念,mapreduce整体上可以分为这么几条执行线索:obclient,JobTracker与TaskTracker。

1、JobClient会在用户端通过JobClient类将应用已经配置参数打包成jar文件存储到hdfs,并把路径提交到Jobtracker,然后由JobTracker创建每一个Task(即MapTask和ReduceTask)并将它们分发到各个TaskTracker服务中去执行。

2、JobTracker是一个master服务,软件启动之后JobTracker接收Job,负责调度Job的每一个子任务task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。

3、TaskTracker是运行在多个节点上的slaver服务。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。TaskTracker都需要运行在HDFS的DataNode上。


  • 4. Hadoop 作者 答案C Doug cutting  

a)Martin Fowler

b)Kent Beck

c)Doug cutting


  • 5. HDFS 默认 Block Size 答案:B  

a)32MB  b)64MB c)128MB

(因为版本更换较快,这里答案只供参考)


  • 6. 下列哪项通常是集群的最主要瓶颈:答案:C磁盘  

a)CPU  b)网络  c)磁盘IO d)内存

该题解析:

首先集群的目的是为了节省成本,用廉价的pc机,取代小型机及大型机。小型机和大型机有什么特点?

1.cpu处理能力强

2.内存够大

所以集群的瓶颈不可能是a和d

3.网络是一种稀缺资源,但是并不是瓶颈。

4.由于大数据面临海量数据,读写数据都需要io,然后还要冗余数据,hadoop一般备3份数据,所以IO就会打折扣。


  • 7. 关于 SecondaryNameNode 哪项是正确的?答案C  

a)它是 NameNode 的热备

b)它对内存没有要求

c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间

d)SecondaryNameNode 应与 NameNode 部署到一个节点。


多选题答案



  • 8. 下列哪项可以作为集群的管理?答案:ABD  

a)Puppet

b)Pdsh

c)Cloudera Manager

d)Zookeeper


  • 9. 配置机架感知的下面哪项正确:答案ABC  

a)如果一个机架出问题,不会影响数据读写

b)写入数据的时候会写到不同机架的 DataNode 中

c)MapReduce 会根据机架获取离自己比较近的网络数据


  • 10. Client 端上传文件的时候下列哪项正确?答案B  

a)数据经过 NameNode 传递给 DataNode

b)Client 端将文件切分为 Block,依次上传

c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作

该题分析:

Client向NameNode发起文件写入的请求。

NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。

Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。


  • 11. 下列哪个是 Hadoop 运行的模式:答案ABC  

a)单机版

b)伪分布式

c)分布式


  • 12. Cloudera 提供哪几种安装 CDH 的方法?答案:ABCD  

a)Cloudera manager  b)Tarball  c)Yum  d)Rpm


判断题答案



  • 13. Ganglia 不仅可以进行监控,也可以进行告警。( 正确)

分析:此题的目的是考Ganglia的了解。严格意义上来讲是正确。ganglia作为一款最常用的Linux环境中的监控软件,它擅长的的是从节点中按照用户的需求以较低的代价采集数据。但是ganglia在预警以及发生事件后通知用户上并不擅长。最新的ganglia已经有了部分这方面的功能。但是更擅长做警告的还有Nagios。Nagios,就是一款精于预警、通知的软件。通过将Ganglia和Nagios组合起来,把Ganglia采集的数据作为Nagios的数据源,然后利用Nagios来发送预警通知,可以完美的实现一整套监控管理的系统。


  • 14. Block Size 是不可以修改的。(错误 )

分析:它是可以被修改的Hadoop的基础配置文件是hadoop-default.xml,默认建立一个Job的时候会建立Job的Config,Config首先读入hadoop-default.xml的配置,然后再读入hadoop-site.xml的配置(这个文件初始的时候配置为空),hadoop-site.xml中主要配置需要覆盖的hadoop-default.xml的系统级配置。


  • 15. Nagios 不可以监控 Hadoop 集群,因为它不提供 Hadoop 支持。(错误 )

分析:Nagios是集群监控工具,而且是云计算三大利器之一


  • 16. 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。(错误 )

分析:SecondaryNameNode是帮助恢复,而不是替代,如何恢复,可以查看


  • 17. Cloudera CDH 是需要付费使用的。(错误 )

分析:第一套付费产品是Cloudera Enterpris,Cloudera Enterprise在美国加州举行的 Hadoop 大会 (Hadoop Summit) 上公开,以若干私有管理、监控、运作工具加强 Hadoop 的功能。收费采取合约订购方式,价格随用的 Hadoop 叢集大小变动。


  • 18. Hadoop 是 Java 开发的,所以 MapReduce 只支持 Java 语言编写。(错误 )

分析:rhadoop是用R语言开发的,MapReduce是一个框架,可以理解是一种思想,可以使用其他语言开发。


  • 19. Hadoop 支持数据的随机读写。(错 )

分析:lucene是支持随机读写的,而hdfs只支持随机读。但是HBase可以来补救。HBase提供随机读写,来解决Hadoop不能处理的问题。HBase自底层设计开始即聚焦于各种可伸缩性问题:表可以很“高”,有数十亿个数据行;也可以很“宽”,有数百万个列;水平分区并在上千个普通商用机节点上自动复制。表的模式是物理存储的直接反映,使系统有可能提高高效的数据结构的序列化、存储和检索。


  • 20. NameNode 负责管理 metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入 metadata 信息并反馈 client 端。(错误)

此题分析:

NameNode 不需要从磁盘读取 metadata,所有数据都在内存中,硬盘上的只是序列化的结果,只有每次 namenode 启动的时候才会读取。

1)文件写入

Client向NameNode发起文件写入的请求。

NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。

Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

2)文件读取Client向NameNode发起文件读取的请求。


  • 21. NameNode 本地磁盘保存了 Block 的位置信息。( 个人认为 正确 ,欢迎提出其它意见)

分析:DataNode是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data,同时周期性地将所有存在的Block信息发送给NameNode。NameNode返回文件存储的DataNode的信息。Client读取文件信息。


  • 22. DataNode 通过长连接与 NameNode 保持通信。( )

这个有分歧:具体正在找这方面的有利资料。下面提供资料可参考。

首先明确一下概念:

(1).长连接Client方与Server方先建立通讯连接,连接建立后不断开,然后再进行报文发送和接收。这种方式下由于通讯连接一直存在,此种方式常用于点对点通讯。

(2).短连接Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点通讯,比如多个Client连接一个Server.


  • 23. Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。 (错误 )

hadoop只能阻止好人犯错,但是不能阻止坏人干坏事


  • 24. Slave 节点要存储数据,所以它的磁盘越大越好。( 错误)

分析:一旦Slave节点宕机,数据恢复是一个难题


  • 25. hadoop dfsadmin –report 命令用于检测 HDFS 损坏块。(错误 )

  • 26. Hadoop 默认调度器策略为 FIFO(正确 )

  • 27. 集群内每个节点都应该配 RAID,这样避免单磁盘损坏,影响整个节点运行。(错误 )

分析:首先明白什么是RAID,可以参考百科磁盘阵列。这句话错误的地方在于太绝对,具体情况具体分析。题目不是重点,知识才是最重要的。因为hadoop本身就具有冗余能力,所以如果不是很严格不需要都配备RAID。具体参考第二题。


  • 28. 因为 HDFS 有多个副本,所以 NameNode 是不存在单点问题的。(错误 )

  • 29. 每个 map 槽就是一个线程。(错误 )

分析:首先我们知道什么是map 槽,map 槽->map slotmap slot 只是一个逻辑值 ( org.apache.hadoop.mapred.TaskTracker.TaskLauncher.numFreeSlots ),而不是对应着一个线程或者进程


  • 30. Mapreduce 的 input split 就是一个 block。(错误 )

  • 31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。(错误 )

  • 32. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认是 200 GB。( 错误)

hadoop为各个守护进程(namenode,secondarynamenode,jobtracker,datanode,tasktracker)统一分配的内存在hadoop-env.sh中设置,参数为HADOOP_HEAPSIZE,默认为1000M。


  • 33. DataNode 首次加入 cluster 的时候,如果 log 中报告不兼容文件版本,那需要 NameNode执行“Hadoop namenode -format”操作格式化磁盘。(错误 )


分析:


首先明白介绍,什么ClusterID

ClusterID

添加了一个新的标识符ClusterID用于标识集群中所有的节点。当格式化一个Namenode,需要提供这个标识符或者自动生成。这个ID可以被用来格式化加入集群的其他Namenode。

二次整理

有的同学问题的重点不是上面分析内容:内容如下:欢迎加入722680258

这个报错是说明 DataNode 所装的Hadoop版本和其它节点不一致,应该检查DataNode的Hadoop版本


推荐阅读
  • 大数据学习路线!
    大数据如此火热的现在,想必许多小伙伴都想要加入这个行业。也是AI菌今天就要拿出收藏已久的大数据学习计划。帮助你不走弯路,迈向大数据之路。1大数据应用离不开基础软件的支撑,且大部分大 ... [详细]
  • 前言折腾了一段时间hadoop的部署管理,写下此系列博客记录一下。为了避免各位做部署这种重复性的劳动,我已经把部署的步骤写成脚本,各位只需要按着本文把脚本执行完,整个环境基本就部署 ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • Azkaban(三)Azkaban的使用
    界面介绍首页有四个菜单projects:最重要的部分,创建一个工程,所有flows将在工程中运行。scheduling:显示定时任务executing:显示当前运行的任务histo ... [详细]
  • Java开发实战讲解!字节跳动三场技术面+HR面
    二、回顾整理阿里面试题基本就这样了,还有一些零星的问题想不起来了,答案也整理出来了。自我介绍JVM如何加载一个类的过程,双亲委派模型中有 ... [详细]
  • 分布式大型互联网企业架构!
    2019独角兽企业重金招聘Python工程师标准摘要:开发工具1.EclipseIDE:采用Maven项目管理,模块化。2.代码生成: ... [详细]
  • 介绍怎样在IntellijIdea中通过创建mavenproject配置MapReduce的编程环境。一、软件环境我使用的软件版本号例如以下:IntellijIdea2017.1M ... [详细]
  • Hbase 进阶
    一、RegionServer架构1)StoreFile保存实际数据的物理文件,StoreFile以Hfile的形式存储在HDFS上。每个Store会有一 ... [详细]
  • Flume 开源分布式日志收集系统
    为什么80%的码农都做不了架构师?Flume--开源分布式日志收集系统Flume是Cloudera提供的一个高可用的、高可靠的开源分布式海量日志收集系统 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • SparkOnYarn在YARN上启动Spark应用有两种模式。在cluster模式下,Spark驱动器(driver)在YARNApp ... [详细]
  • Hadoop——Hive简介和环境配置
    一、Hive的简介和配置1.简介Hive是构建在Hadoop之上的数据操作平台lHive是一个SQL解析引擎,它将SQL转译成MapReduce作业,并 ... [详细]
  • Hadoop中的MapReduce框架原理、自定义Partitioner步骤、在Job驱动中,设置自定义Partitioner、Partition 分区案例
    文章目录13.MapReduce框架原理13.3Shuffle机制13.3.2Partition分区13.3.2.3自定义Partitioner步骤13.3.2.3.1自定义类继承 ... [详细]
  • dubbo学习 一 dubbo概述
    1,背景1,网站刚开时候的时候可能所有的功能业务都在一个应用里面2,当业务不断复杂,流量不断增多的时候,就需要将原先的一个应用划分成多个独立的应用。3,当分出来的业务越来越多的时候 ... [详细]
author-avatar
氤氲微凉521
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有