成为大数据顶尖程序员,先过了下面问题!(附答案解析)

大数据
在过去的2017年有不少大数据学成准备参加工作,在参加工作前最重要的一轮就是大数据的面试,小编收集了一些2018春招大数据面试题及答案,希望可以帮到准备或者正在参加大数据面试的朋友们。

在大数据开发岗位的需求下,工资待遇水涨船高,不少编程人员在面对职业瓶颈期的时候,会选择转编程方向发展。

你是否已经意识这是你人生中的一个重要转机?能不能抓住这个时代的机遇,就在于你对大数据信息的应用和获取。而如何成为大数据时代的弄潮儿,掌握当下最紧缺的软件技能是关键!谷歌、阿里巴巴、百度、京东都在急需掌握hadoop技术的大数据人才!无论你精通大数据的哪一项类,都将在未来职场脱颖而出!

[[227942]]

在过去的2017年有不少大数据学成准备参加工作,在参加工作前最重要的一轮就是大数据的面试,小编收集了一些2018春招大数据面试题及答案,希望可以帮到准备或者正在参加大数据面试的朋友们。

一、选择题

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)Jobtracke

此题分析:

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

在此我向大家推荐一个交流学习群:615997810 里面会分享一些资深大数据工程师架构师录制的视频录像:有Linux、Hadoop核集群搭建、HDFS、Mapreduce、YARN、离线计算Flume 、Hive、实时计算、大数据ETL、大数据应用与数据挖掘的原理这些成为大, 数据开发师必备的知识体系。还能领取免费的学习资源,目前受益良多。

JobTracker和TaskTracker

JobTracker对应于NameNode

TaskTracker对应于DataNode

DataNode和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 amenode -format”操作格式化磁盘。(错误)

分析:

首先明白介绍,什么ClusterID

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

以上就是小编整理的2018大数据春招面试题及答案准备或者是正在参加大数据的面试的朋友可以收藏一下好好看看,做好充分的准备参加每一场的面试,祝你成功!

责任编辑:未丽燕 来源: 网络大数据
相关推荐

2015-12-31 09:55:15

2018-01-31 22:31:49

大数据程序员编程

2013-02-22 10:21:06

2015-07-13 11:32:09

PHP程序员正确姿势

2023-11-06 07:19:11

程序员GitHub社交媒体

2013-06-05 10:28:31

大数据专家IT程序员大数据

2014-08-08 10:24:37

程序员

2014-08-05 09:15:55

程序员

2018-02-01 16:37:34

顶尖程序员思维模式

2013-07-25 11:28:30

程序员

2010-12-21 15:15:01

完美程序员

2015-01-14 10:17:28

高级程序员

2013-07-25 09:40:01

程序员

2010-04-20 16:26:03

面试

2015-10-30 09:49:30

2009-03-20 10:19:12

程序员编程职场

2019-08-21 15:50:11

Python程序员人生第一份工作

2011-06-29 09:27:10

2015-08-18 15:22:59

程序员成长阶段

2011-03-25 10:53:53

程序员
点赞
收藏

51CTO技术栈公众号