你好,游客 登录
背景:
阅读新闻

干货 | 98道常见Hadoop面试题及答案解析( )

[日期:2017-09-27] 来源:36大数据  作者:佚名 [字体: ]

  这是 篇hadoop的测试题及答案解析,题目种类挺多, 共有98道题,题目难度不大,对于高手来说,90分以上才是你的追求。

Hadoop

  1 单选题

  1.1 下面哪个程序负责 HDFS 数据存储。

  a)NameNode

  b)Jobtracker

  c)Datanode

  d)secondaryNameNode

  e)tasktracker

  答案 C datanode

  1.2 HDfS 中的 block 默认保存几份?

  a)3 份

  b)2 份

  c)1 份

  d)不确定

  答案 A 默认 3份

  1.3 下列哪个程序通常与 NameNode 在 个节点启动?

  a)SecondaryNameNode

  b)DataNode

  c)TaskTracker

  d)Jobtracker

  答案 D,此题分析:

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

  JobTracker 和 TaskTracker,JobTracker 对应于 NameNode,TaskTracker 对应于 DataNode,DataNode 和 NameNode 是针对数据存放来而言的,JobTracker 和 TaskTracker 是对于 MapReduce 执行而言的,mapreduce 中几个主要概念,mapreduce 整体上可以分为这么几条执行线索:obclient,JobTracker 与 TaskTracker。

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

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

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

  1.4 Hadoop 作者

  a)Martin Fowler

  b)Kent Beck

  c)Doug cutting

  答案 C Doug cutting

  1.5 HDFS 默认 Block Size

  a)32MB

  b)64MB

  c)128MB

  答案:B

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

  1.6 下列哪项通常是集群的较主要瓶颈:

  a)CPU

  b)网络

  c)磁盘 IO

  d)内存

  答案:C 磁盘

  该题解析:

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

  cpu 处理能力强

  内存够大。所以集群的瓶颈不可能是 a 和 d

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

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

  1.7 关于 SecondaryNameNode 哪项是正确的?

  a)它是 NameNode 的热备

  b)它对内存没有要求

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

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

  答案 C

  2 多选题

  2.1 下列哪项可以作为集群的管理?

  a)Puppet

  b)Pdsh

  c)Cloudera Manager

  d)Zookeeper

  答案:ABD

  2.2 配置机架感知的下面哪项正确:

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

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

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

  答案 ABC

  2.3 Client 端上传文件的时候下列哪项正确?

  a)数据经过 NameNode 传递给 DataNode

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

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

  答案 B,该题分析:

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

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

  信息。

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

  2.4 下列哪个是 Hadoop 运行的模式:

  a)单机版

  b)伪分布式

  c)分布式

  答案 ABC

  2.5 Cloudera 提供哪几种安装 CDH 的方法?

  a)Cloudera manager

  b)Tarball

  c)Yum

  d)Rpm

  答案:ABCD

  3 判断题

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

  分析:此题的目的是考 Ganglia 的了解。严格意义上来讲是正确。ganglia 作为 款较常用的 Linux 环境中的监控软件,它擅长的的是从节点中按照用户的需求以较低的代价采集数据。

  但是 ganglia 在预警以及发生事件后通知用户上并不擅长。较新的 ganglia 已经有了部分这方面的功能。但是更擅长做警告的还有 Nagios。Nagios,就是 款精于预警、通知的软件。通过将 Ganglia 和 Nagios 组合起来,把 Ganglia 采集的数据作为 Nagios 的数据源,然后利用 Nagios 来发送预警通知,可以的实现 整套监控管理的系统。

  3.2 Block Size 是不可以修改的。(错误 )

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

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

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

  3.4 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。

  (错误 )

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

  3.5 Cloudera CDH 是需要付费使用的。(错误 )

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

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

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

  3.7 Hadoop 支持数据的随机读写。(错 )

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

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

  此题分析:

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

  1)文件写入

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

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

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

  DataNode 块中。

  2)文件读取

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

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

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

  Client 读取文件信息。

  3.10 DataNode 通过长连接与 NameNode 保持通信。(有分歧 )

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

  先明确 下概念:

  (1).长连接

  Client 方与 Server 方先建立通讯连接,连接建立后不断开,然后再进行报文发送和接收。

  这种方式下由于通讯连接 直存在,此种方式常用于点对点通讯。

  (2).短连接

  Client 方与 Server 每进行 次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。

  此种方式常用于 点对多点通讯,比如多个 Client 连接 个 Server.

  限于篇幅,这里只能放 小部分题目,想测试更多的题目请自行下载。(博客后台没找到附件选项。。。)

  http://www.dajiangtai.com/community/18456.do





收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款